Task 2 of the project is to “select one or more possible model designs for RSPM mode shift, estimate model parameters and evaluate the designs and estimated parameters with sensitivity tests and validation”. More specifically, the plan is to select and estimate one or more possible designs of the mode choice model based on literature review and data exploration in Task 1 and to understand what mode shifts occur as vehicle travel is reduced, incorporating and testing interactions in RSPM. These approaches build on the existing RSPM module and utilize household and land use inputs and budget constraints already embedded in the RSPM tool. The PSU team will suggest functional form and independent variables for model estimation with associated data sources for estimation and validation. PSU researchers will also identify sensitivity tests to assess the upgraded model with literature elasticities, repeating some of the tests previously calculated by the RSPM to ensure these remain intact, as well as adding tests to evaluate the new functionality. The PSU team will discuss and coordinate with Brian Gregor in the model design and estimation process, as he implements the RSPM common framework, to make sure the design and data format match the latest RSPM modeling framework. ODOT staff shall review and adjust the proposed designs, estimation data and validation data/approach.
The deliverable of Task 2 is a working paper (this document) that describes model designs, data sources, estimation, results of sensitivity tests and validation; documented R scripts used to process and analyze data.
Members of the TAC/OSA contract will review and suggest adjustments to the PSU researchers for model design, estimation data and results, validation data, approach and results; guide the selection of the best model design.
The primary data sources we identified and used for Task 2 are the 2009 National Household Travel Survey (NHTS) and 2010 EPA Smart Location Database (SLD). Additional data sources include TTI’s Urban Mobility Report dataset and National Transit Database. We retrieved the 2009 NHTS data with confidential block group level residence location (and Census Tract and ZIP code of workplace location), which is the ideal data set we eyed for modeling mode choice. With the confidential residential block group location, we joined the 2009 NHTS with the 2010 SLD to get a combined dataset of travel information and built environment/urban form variables of households’ residential block group.
We also looked into alternative data sources, including the 2012 California Travel Survey (CATS), 2011 Oregon Household Travel and Activity Survey (OHAS), the 2014-2015 Puget Sound Regional Travel Study (PSRTS) and explored the potential to combine these 3 surveys to create a unified data set with diverse coverage. But with the 2009 NHTS data with confidential residential block group location, there is limited additional benefit of pursuing combining CATS, OHAS and PSRTS for a number of reasons. First, these three data sets were collected in different years, which may create odd effects that are included in the model estimation. Second, since each of the data sets was collected by a different State/agency, the information collected varies and how the variables are measured or coded are likely different, which adds extra work to create a unified data set at the least and may weaken the final models at the worst.
There are two areas that extra data would be still beneficial. One area we wish to have a better handle is the day-to-day variation in mode choice and total demand (for example, the amount of driving measured in vehicle miles traveled), so that we can predict long-term behavior from a daily model. However, NHTS, as well as the three travel surveys above only capture the travel information for one single day. In GreenSTEP, Brian Gregor assumed the stochasticity in household daily VMT model (a linear regression model with transformed VMT as the dependent variable) represents the day-to-day variation in VMT. Such approximation of weekly VMT from daily information may be imperfect. Verification of the relationship between daily and longer term VMT and an explicit model of weekly (or annual) VMT may be necessary. A few potential data sets would be helpful in looking into the relationship. In particular, the 2004 – 2006 Traffic Choices Study by the Puget Sound Regional Council. For a pilot project on congestion-based tolling sponsored by Federal Highway Administration, the study placed GPS data loggers into the vehicles of about 275 households in the Seattle metropolitan area. The project recorded roughly 18 months of trip data (from November 2004 to April 2006) and included more than 400 vehicles. Such long-term data would be helpful to look into the relationship between daily and long term VMT.
Another potential area we are looking into for improvement is the modeling of price elasticities of travel demand. Brian tested three different methods of capturing price elasticities: income effect, price coefficient and household budget model. There are a number of challenges to get realistic price elasticities, including 1) The lack of disaggregate panel data that can be used to study how household travel decisions change over time in response to changes in fuel prices; 2) The relatively low historical price of fuel; 3) The prospect for future fuel prices that may be several times greater than present prices; 4) A lack of research consensus on the magnitude of the effects; and, 5) The difficulty of sorting out short range and long range effects.
Because of these challenges, the first two methods do not have sufficient sensitivity and Brian adopted the household budget model. All the challenges Brian identified above remain for the current project. Using the household budget model as the baseline model, we hope to draw from literature around the world (for example, Graham and Glaister, 2002) on the magnitude of the price elasticities and explore alternative methods of incorporating the elasticities into the new model of travel demand. Tolling studies such as the Puget Sound Traffic Choices Study provide some useful information on the price elasticities of travel demand (even though not from fuel price change).
In addition to surveyed households’ socio-demographic characteristics, the 2009 NHTS [@NHTS2009] collected daily trips taken in a 24-hour period, and includes:
The 2009 NHTS included 150,145 households, 308,901 household members and 1,079,763 trips.
According to codebook for G34 TRPTRANS, we re-classify the modes into 5 categories:
| Code | Name |
|---|---|
| 1 | Car |
| 2 | Van |
| 3 | SUV |
| 4 | pickup truck |
| 5 | other truck |
| 6 | recreational vehicle |
| 7 | motorcycle |
| Code | Name |
|---|---|
| 9 | transit bus |
| 10 | commuter bus |
| 11 | school bus |
| 12 | charter bus |
| 13 | city to city bus |
| 14 | Shuttle bus |
| 15 | Amtrak |
| 16 | Commuter train |
| 17 | Subway |
| 18 | Street car/trolley |
| Code | Name |
|---|---|
| 22 | bicycle |
| Code | Name |
|---|---|
| 23 | walk |
| Code | Name |
|---|---|
| 8 | Light electric veh (golf cart) |
| 19 | taxi cab |
| 20 | Ferry |
| 21 | airplanes |
| 24 | Special transit-people w/disabilitie |
| Variable Names | Description |
|---|---|
| ANNMILES | [NHTS] Self-reported annualized mile estimate |
| BESTMILE | [NHTS] Best estimate of annual miles (ORNL) |
| TDAYDATE | [NHTS] Date of Travel Day (YYYYMM) |
| TRAVDAY | [NHTS] Travel day - day of week |
| DRVRCNT | [NHTS] Number of drivers in HH |
| HHSIZE | [NHTS] Count of HH members |
| HHVEHCNT | [NHTS] Count of HH vehicles |
| NUMADLT | [NHTS] Count of adult HHMs at least 18 years old |
| TRPMILES | [NHTS] Calculated Trip distance converted into miles |
| TRPTRANS | [NHTS] Transportation mode used on trip |
| TRIPPURP | [NHTS] General Trip Purpose (Home-Based Purpose types) |
| TRVL_MIN | [NHTS] Derived trip time - minutes |
| TRVLCMIN | [NHTS] Calculated travel time |
| DVMT | [NHTS] Calculated Trip distance (miles) for Driver Trips |
| WRKCOUNT | [NHTS] Number of workers in HH |
| LIF_CYC | [NHTS] Household Life Cycle (Single, Young Couple, Couple with children, Empty Nester) |
| Htppopdn | |
| TOTPOP10_1 | [PT] 2010 Total population within 1 mile buffer of BG centroid |
| EMPTOT_2 | [PT] Total employment within 2 mile buffer of BG centroid |
| [PT] | |
| E5_RET10 | [SLD] 2010 Retail employment |
| E5_SVC10 | [SLD] 2010 Service employment |
| D1D | [SLD] Gross activity density (employment + HUs) on unprotected land |
| D2A_JPHH | [SLD] Jobs per household |
| D3amm | [SLD] Network density in terms of facility miles of multi-modal links per square mile |
| D3apo | [SLD] Network density in terms of facility miles of pedestrian-oriented links per square mile |
| D4a | [SLD] Distance from population weighted centroid to nearest transit stop (meters) |
| D4c | [SLD] Aggregate frequency of transit service within 0.25 miles of block group boundary per hour during evening peak period |
| D4d | [SLD] Aggregate frequency of transit service (D4c) per square mile |
| Fwylnmicap | [TTI] 2010 Urbanized Area freeway lane miles per capita |
| Tranmilescap | [NTD] 2009 Urbanized Area annual vehicle revenue miles per capita |
| mode | n | % |
|---|---|---|
| Auto | 955345 | 88.477 |
| Walk | 93182 | 8.630 |
| Transit | 22483 | 2.082 |
| Bike | 8753 | 0.811 |
| TRIPPURP | mode | n | % |
|---|---|---|---|
| HBO | Auto | 195189 | 84.670 |
| HBO | Bike | 1023 | 0.444 |
| HBO | Transit | 13157 | 5.707 |
| HBO | Walk | 21161 | 9.179 |
| HBSHOP | Auto | 243832 | 95.249 |
| HBSHOP | Bike | 1097 | 0.429 |
| HBSHOP | Transit | 1251 | 0.489 |
| HBSHOP | Walk | 9814 | 3.834 |
| HBSOCREC | Auto | 110582 | 71.482 |
| HBSOCREC | Bike | 4832 | 3.123 |
| HBSOCREC | Transit | 812 | 0.525 |
| HBSOCREC | Walk | 38473 | 24.870 |
| HBW | Auto | 102319 | 95.909 |
| HBW | Bike | 684 | 0.641 |
| HBW | Transit | 1671 | 1.566 |
| HBW | Walk | 2009 | 1.883 |
| NHB | Auto | 303423 | 91.432 |
| NHB | Bike | 1117 | 0.337 |
| NHB | Transit | 5592 | 1.685 |
| NHB | Walk | 21725 | 6.546 |
Figure 1: Shares of trips by trip purpose and mode
The distribution of raw trip distance (miles) is very skewed
Summary of trip distance by mode
| mode | n | 5% | 25% | 50% | 75% | 95% | 99% | max | mean | sd |
|---|---|---|---|---|---|---|---|---|---|---|
| Auto | 955345 | 0.556 | 2.000 | 4.0 | 10.000 | 29 | 57 | 91 | 8.027 | 10.831 |
| Bike | 8753 | 0.111 | 0.556 | 1.0 | 2.889 | 8 | 17 | 22 | 2.211 | 3.113 |
| Transit | 22483 | 0.556 | 2.000 | 4.0 | 9.000 | 26 | 55 | 95 | 7.727 | 10.301 |
| Walk | 93182 | 0.111 | 0.222 | 0.5 | 0.778 | 2 | 3 | 4 | 0.646 | 0.612 |
Given the skewedness of trip distance, a cutoff of 99-percentile of trip distance for each mode is used. Results below are after applying the cutoff.
| mode | n | 5% | 25% | 50% | 75% | 95% | 99% | max | mean | sd |
|---|---|---|---|---|---|---|---|---|---|---|
| Auto | 127999 | 4.000 | 17.000 | 40.00 | 80.00 | 183.00 | 308.12 | 1205.0 | 59.91 | 64.91 |
| Bike | 3412 | 0.222 | 1.111 | 3.00 | 7.00 | 20.00 | 37.10 | 76.0 | 5.67 | 7.62 |
| Transit | 9107 | 1.000 | 4.000 | 10.00 | 22.00 | 66.00 | 130.00 | 434.0 | 19.08 | 27.31 |
| Walk | 32780 | 0.222 | 0.556 | 1.11 | 2.22 | 5.44 | 8.67 | 40.2 | 1.83 | 1.88 |
| mode | n | 5% | 25% | 50% | 75% | 95% | 99% | max | mean | sd |
|---|---|---|---|---|---|---|---|---|---|---|
| Auto | 127999 | 19 | 50 | 97 | 167 | 325 | 500 | 2084 | 124.9 | 105.6 |
| Bike | 3412 | 5 | 19 | 30 | 60 | 140 | 240 | 515 | 48.6 | 49.6 |
| Transit | 9107 | 13 | 31 | 60 | 106 | 220 | 380 | 1155 | 82.7 | 79.5 |
| Walk | 32780 | 4 | 15 | 30 | 55 | 118 | 196 | 1110 | 40.6 | 42.4 |
Boxplot of household travel distance (mile) and time (minutes) by mode
DVMT - Calculated Trip distance (miles) for Auto Trips
ANNMILES - Self-reported annualized mile estimate;
BESTMILE - Best estimate of annual miles (by ORNL)
The Smart Location Database [@Ramsey2014] is a nationwide geographic data resource for measuring location efficiency. It includes more than 90 attributes summarizing characteristics such as housing density, diversity of land use, neighborhood design, destination accessibility, transit service, employment, and demographics. Most attributes are available for every census block group in the United States. The variables in SLD are largely organized according to the 5D built environment measures: Density, Diversity, Design, Transit, Destination, in addition to demographics and employment. A complete list of the variables can be found here.
The confidential NHTS data contain Census Block Group information of households’ residence Census block group (2010 geography), which is joined with SLD to retrieve land use features for these locations. Land use information in SLD provide a rich set of factors that are documented in existing research literature to have influence on households’ travel behavior including mode choices and travel distance.
All households in the 2009 NHTS data have a matched block group in the SLD.
Place types are land uses categories that are useful for describing development patterns and their relationship to human behavior (e.g. travel behavior) and well being (e.g. health) (Gregor, 2016). In the RSPM mode shift project, we use place types as a means to simplify the work for RSPM users when they create scenarios.
This project adopts the work by Brian Gregor and others and establishes categories over the following 3 dimensions:
By default, the accessibility measure ACCESS = (2 * EMPTOT_2 * TOTPOP10_5) / 10000 * (EMPTOT_2 + TOTPOP10_5), where EMPTOT_2 is employment within 2-mile radius, and TOTPOP10_5 is total 2010 population within 5-mile radius. The break points for very low, low, medium, and high are 0.1, 0.5 and 2, respectively.
The Density level uses D1D variable in SLD - gross activity density (employment + HUs) on unprotected land (per acre) - with break points of 0.1, 1, and 5.
The Design measure is based on two variables from the SLD: D3amm variable (network density in terms of multimodal links per square mile) and D3apo variable (network density in terms of facility miles of pedestrian-oriented links per square mile). The default break points for D3amm are 1.3, 2.5, and 3.3, while those for D3apo are 12.5, 15.6, and 20. The final value of the Design measure is the maximum value of the two. For example, if the D3amm value is low and D3apo value is medium, the final value of the design measure would be medium.
Diversity Level is a measure of the mixing of jobs and households in the block group. It is based on measures in the SLD: D2A_JPHH (ratio of jobs to households in the block group and the ratio of retail and service jobs to the number of households (E5_RET10 + E5_SVC10)/HH.
Transit Level is a measure of the level of transit service derived from the SLD D4c (aggregate frequency of transit service within 0.25 miles of block group boundary per hour during evening peak period). The threshold values for the 4 levels are 1, 20, and 150.
Based on discussion with the TAC, in particular, Brian and Tara, we primilarily use the place types as an intermediate step to faciliate scenario creation, but not as independent variables directly included in model specification.
GreenSTEP focuses on Daily Vehicle Mile Travel (VMT) by drivers in its household travel model and does not explicitly models non-driving travel (for example, by transit or non-motorized modes), except for diversion of short-distance trips to bike. The current household travel model in GreenSTEP has two sequential (conditional) model: a binary model of whether a household will have non-zero VMT and a regression model of the actual VMT for households with non-zero VMT. Such a model structure provides a good balance between behavioral realism and simplicity and performance:
\(P(Daily VMT==0) = logit(DrvAgePop + LogIncome + Htppopdn + Age65Plus + Hhvehcnt + ZeroVeh + Tranmilescap + Urban:Tranmilescap)\), and
## $metro
##
## Call:
## glm(formula = ZeroDVMT ~ DrvAgePop + LogIncome + HTPPOPDN + Age65Plus +
## HHVEHCNT + ZeroVeh + Tranmilescap, family = binomial, data = .,
## na.action = na.exclude)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.684 -0.394 -0.301 -0.235 4.385
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.64606 0.22408 11.81 < 0.0000000000000002 ***
## DrvAgePop 0.06538 0.01918 3.41 0.00065 ***
## LogIncome -0.45342 0.02162 -20.98 < 0.0000000000000002 ***
## HTPPOPDN -0.00257 0.00781 -0.33 0.74213
## Age65Plus -0.10142 0.02562 -3.96 0.000075 ***
## HHVEHCNT -0.52170 0.02865 -18.21 < 0.0000000000000002 ***
## ZeroVeh 3.73374 0.09402 39.71 < 0.0000000000000002 ***
## Tranmilescap 0.02289 0.00145 15.82 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 34165 on 53460 degrees of freedom
## Residual deviance: 23712 on 53453 degrees of freedom
## (11236 observations deleted due to missingness)
## AIC: 23728
##
## Number of Fisher Scoring iterations: 6
##
##
## $non_metro
##
## Call:
## glm(formula = ZeroDVMT ~ DrvAgePop + LogIncome + HTPPOPDN + Age65Plus +
## HHVEHCNT + ZeroVeh, family = binomial, data = ., na.action = na.exclude)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.365 -0.364 -0.294 -0.245 3.394
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.51885 0.20232 12.45 < 0.0000000000000002 ***
## DrvAgePop -0.07018 0.02062 -3.40 0.00067 ***
## LogIncome -0.43520 0.01976 -22.03 < 0.0000000000000002 ***
## HTPPOPDN 0.00159 0.00764 0.21 0.83541
## Age65Plus -0.01325 0.02243 -0.59 0.55457
## HHVEHCNT -0.30355 0.02172 -13.98 < 0.0000000000000002 ***
## ZeroVeh 3.67847 0.09130 40.29 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 35908 on 70323 degrees of freedom
## Residual deviance: 28794 on 70317 degrees of freedom
## (15124 observations deleted due to missingness)
## AIC: 28808
##
## Number of Fisher Scoring iterations: 6
| metro | auc | pseudo.r2 |
|---|---|---|
| metro | 0.806 | 0.306 |
| non_metro | 0.743 | 0.198 |
\((Daily VMT)^{0.18} = lm(Census\_r + LogIncome + Htppopdn + Hhvehcnt + ZeroVeh + Tranmilescap + Fwylnmicap + DrvAgePop + Age65Plus + Urban + Htppopdn:Tranmilescap)\)
## $metro
##
## Call:
## lm(formula = I(DVMT^0.18) ~ CENSUS_R + LogIncome + HTPPOPDN +
## HHVEHCNT + ZeroVeh + Tranmilescap + Fwylnmicap + DrvAgePop +
## Age65Plus + HTPPOPDN:Tranmilescap, data = ., subset = DVMT >
## 0)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.468 -0.195 0.016 0.211 1.085
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.7651924 0.0234706 32.60 < 0.0000000000000002
## CENSUS_RNE -0.0037742 0.0075555 -0.50 0.617
## CENSUS_RS 0.0105291 0.0059359 1.77 0.076
## CENSUS_RW -0.0082078 0.0061834 -1.33 0.184
## LogIncome 0.0809936 0.0020255 39.99 < 0.0000000000000002
## HTPPOPDN -0.0044735 0.0011132 -4.02 0.0000586
## HHVEHCNT 0.0580625 0.0016237 35.76 < 0.0000000000000002
## ZeroVeh 0.0356076 0.0243210 1.46 0.143
## Tranmilescap -0.0013378 0.0002961 -4.52 0.0000062
## Fwylnmicap 0.0291955 0.0062560 4.67 0.0000031
## DrvAgePop 0.0446789 0.0015540 28.75 < 0.0000000000000002
## Age65Plus -0.0489824 0.0019495 -25.13 < 0.0000000000000002
## HTPPOPDN:Tranmilescap 0.0001047 0.0000555 1.89 0.059
##
## (Intercept) ***
## CENSUS_RNE
## CENSUS_RS .
## CENSUS_RW
## LogIncome ***
## HTPPOPDN ***
## HHVEHCNT ***
## ZeroVeh
## Tranmilescap ***
## Fwylnmicap ***
## DrvAgePop ***
## Age65Plus ***
## HTPPOPDN:Tranmilescap .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.307 on 48236 degrees of freedom
## (10606 observations deleted due to missingness)
## Multiple R-squared: 0.17, Adjusted R-squared: 0.169
## F-statistic: 821 on 12 and 48236 DF, p-value: <0.0000000000000002
##
##
## $non_metro
##
## Call:
## lm(formula = I(DVMT^0.18) ~ CENSUS_R + LogIncome + HTPPOPDN +
## HHVEHCNT + ZeroVeh + DrvAgePop + Age65Plus, data = ., subset = DVMT >
## 0)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5228 -0.2116 0.0122 0.2252 1.1593
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.780561 0.019311 40.42 < 0.0000000000000002 ***
## CENSUS_RNE 0.050852 0.004816 10.56 < 0.0000000000000002 ***
## CENSUS_RS 0.054222 0.003836 14.14 < 0.0000000000000002 ***
## CENSUS_RW 0.014686 0.005116 2.87 0.0041 **
## LogIncome 0.075984 0.001783 42.61 < 0.0000000000000002 ***
## HTPPOPDN 0.004472 0.000591 7.56 0.000000000000039 ***
## HHVEHCNT 0.053876 0.001270 42.42 < 0.0000000000000002 ***
## ZeroVeh 0.065975 0.025024 2.64 0.0084 **
## DrvAgePop 0.054407 0.001504 36.18 < 0.0000000000000002 ***
## Age65Plus -0.051607 0.001731 -29.82 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.327 on 65346 degrees of freedom
## (14551 observations deleted due to missingness)
## Multiple R-squared: 0.163, Adjusted R-squared: 0.163
## F-statistic: 1.42e+03 on 9 and 65346 DF, p-value: <0.0000000000000002
| metro | rmse | r.squared |
|---|---|---|
| metro | 37.2 | 0.170 |
| non_metro | 44.6 | 0.163 |
| metro | rmse |
|---|---|
| metro | 38.0 |
| non_metro | 45.5 |
Another related model in GreenSTEP is the household budget model that captures the price elasticity of travel. The budget approach to modeling is based on the perspective that households make their travel decisions within money and time budget constraints. According to Brian’s research on historical consumer expenditure survey data, household spending on gasoline and other variable costs is done within a household transportation budget that is relatively stable, as households shift expenses between transportation budget categories when gasoline prices fluctuate. Households will necessarily reduce their travel in direct proportion to the cost increase only when fuel prices or other variable costs increase to the point where it is no longer possible to shift money from other parts of the transportation budget [@gregor]. Brian assumes the transition between inelastic and elastic behavior will not be abrupt unless there is little time for the household to recognize the impact of the cost increases on the budget or respond to the cost increases. If the changes are more gradual, the transition will be less abrupt. Given the focus of GreenSTEP/RSPM on long term forecasting, we would only need to model long run elasticities.
Instead of modeling DVMT and then approximating annual VMT from it, an alternative is to directly model annual average daily VMT (AADVMT). Both 2001 and 2009 NHTS contain annual mile estimates provided by ORNL, from which we can derive AADVMT.
ln(AADVMT) = f(HH variables, 5D variables)
## $metro
##
## Call:
## lm(formula = I(AADVMT^0.38) ~ HHSIZE + WRKCOUNT + LogIncome +
## Age65Plus + ns(log1p(VehPerDriver), 3) + log1p(TRPOPDEN) +
## log1p(EMPTOT_5) + Tranmilescap + Tranmilescap:D4c + D1B +
## D3bpo4 + D4b050 + D5cr, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.895 -0.627 0.027 0.666 4.371
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -1.72212301 0.12074534 -14.26
## HHSIZE 0.26045688 0.00452189 57.60
## WRKCOUNT 0.40670348 0.00736780 55.20
## LogIncome 0.35711837 0.00723239 49.38
## Age65Plus -0.02466180 0.00782028 -3.15
## ns(log1p(VehPerDriver), 3)1 2.10498690 0.05180205 40.64
## ns(log1p(VehPerDriver), 3)2 4.32903774 0.21468557 20.16
## ns(log1p(VehPerDriver), 3)3 2.12606480 0.23623025 9.00
## log1p(TRPOPDEN) -0.05794287 0.01099319 -5.27
## log1p(EMPTOT_5) -0.06536699 0.00602499 -10.85
## Tranmilescap -0.00444898 0.00052749 -8.43
## D1B -0.00151855 0.00038945 -3.90
## D3bpo4 -0.00035189 0.00021990 -1.60
## D4b050 -0.08494185 0.03082149 -2.76
## D5cr -67.44266021 9.23127215 -7.31
## Tranmilescap:D4c -0.00000745 0.00000340 -2.19
## Pr(>|t|)
## (Intercept) < 0.0000000000000002 ***
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT < 0.0000000000000002 ***
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.0016 **
## ns(log1p(VehPerDriver), 3)1 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)2 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)3 < 0.0000000000000002 ***
## log1p(TRPOPDEN) 0.00000013651115 ***
## log1p(EMPTOT_5) < 0.0000000000000002 ***
## Tranmilescap < 0.0000000000000002 ***
## D1B 0.00009664723366 ***
## D3bpo4 0.1096
## D4b050 0.0059 **
## D5cr 0.00000000000028 ***
## Tranmilescap:D4c 0.0286 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.04 on 41481 degrees of freedom
## (17556 observations deleted due to missingness)
## Multiple R-squared: 0.391, Adjusted R-squared: 0.391
## F-statistic: 1.77e+03 on 15 and 41481 DF, p-value: <0.0000000000000002
##
##
## $non_metro
##
## Call:
## lm(formula = I(AADVMT^0.38) ~ DrvAgePop + HHSIZE + WRKCOUNT +
## CENSUS_R + LogIncome + Age65Plus + ns(log1p(VehPerDriver),
## 3) + log1p(TRPOPDEN) + log1p(EMPTOT_5) + D1B + D2A_EPHHM +
## D1B:D2A_EPHHM + D5ar, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.662 -0.637 0.026 0.663 4.564
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -2.259248548 0.089407331 -25.27
## DrvAgePop 0.274069624 0.008898492 30.80
## HHSIZE 0.113097812 0.006907273 16.37
## WRKCOUNT 0.348475184 0.005758409 60.52
## CENSUS_RNE -0.122591126 0.014567372 -8.42
## CENSUS_RS 0.075515555 0.011635435 6.49
## CENSUS_RW -0.133685654 0.015896744 -8.41
## LogIncome 0.391530711 0.005324891 73.53
## Age65Plus -0.036839578 0.005853952 -6.29
## ns(log1p(VehPerDriver), 3)1 2.316360205 0.041273162 56.12
## ns(log1p(VehPerDriver), 3)2 4.139920430 0.167265332 24.75
## ns(log1p(VehPerDriver), 3)3 2.570577862 0.158617637 16.21
## log1p(TRPOPDEN) -0.066084079 0.010944999 -6.04
## log1p(EMPTOT_5) -0.052349431 0.003101737 -16.88
## D1B 0.007728485 0.002667258 2.90
## D2A_EPHHM 0.070613209 0.023921470 2.95
## D5ar 0.000000267 0.000000152 1.76
## D1B:D2A_EPHHM -0.029856958 0.005214903 -5.73
## Pr(>|t|)
## (Intercept) < 0.0000000000000002 ***
## DrvAgePop < 0.0000000000000002 ***
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT < 0.0000000000000002 ***
## CENSUS_RNE < 0.0000000000000002 ***
## CENSUS_RS 0.000000000086 ***
## CENSUS_RW < 0.0000000000000002 ***
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.000000000313 ***
## ns(log1p(VehPerDriver), 3)1 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)2 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)3 < 0.0000000000000002 ***
## log1p(TRPOPDEN) 0.000000001569 ***
## log1p(EMPTOT_5) < 0.0000000000000002 ***
## D1B 0.0038 **
## D2A_EPHHM 0.0032 **
## D5ar 0.0780 .
## D1B:D2A_EPHHM 0.000000010364 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.04 on 73881 degrees of freedom
## (5919 observations deleted due to missingness)
## Multiple R-squared: 0.417, Adjusted R-squared: 0.417
## F-statistic: 3.11e+03 on 17 and 73881 DF, p-value: <0.0000000000000002
| metro | rmse | r.squared |
|---|---|---|
| metro | 30.6 | 0.391 |
| non_metro | 34.2 | 0.417 |
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro DrvAgePop HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 2 2 1 S 10.8 0
## 2 metro NA 2 1 <NA> 11.0 0
## # ... with 10 more variables: TRPOPDEN <dbl>, EMPTOT_5 <dbl>, D1B <dbl>,
## # D2A_EPHHM <dbl>, D5ar <dbl>, Tranmilescap <dbl>, D4c <dbl>,
## # D3bpo4 <dbl>, D4b050 <dbl>, D5cr <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro DrvAgePop HHSIZE WRKCOUNT CENSUS_R Age65Plus VehPerDriver
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 2 2 1 S 0 1
## 2 metro NA 2 1 <NA> 0 1
## # ... with 10 more variables: TRPOPDEN <dbl>, EMPTOT_5 <dbl>, D1B <dbl>,
## # D2A_EPHHM <dbl>, D5ar <dbl>, Tranmilescap <dbl>, D4c <dbl>,
## # D3bpo4 <dbl>, D4b050 <dbl>, D5cr <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro DrvAgePop HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 2 2 1 S 10.8 0
## 2 metro NA 2 1 <NA> 11.0 0
## # ... with 10 more variables: VehPerDriver <dbl>, TRPOPDEN <dbl>,
## # EMPTOT_5 <dbl>, D2A_EPHHM <dbl>, D5ar <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>, D3bpo4 <dbl>, D4b050 <dbl>, D5cr <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro DrvAgePop HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 2 2 1 S 10.8 0
## 2 metro NA 2 1 <NA> 11.0 0
## # ... with 10 more variables: VehPerDriver <dbl>, EMPTOT_5 <dbl>,
## # D1B <dbl>, D2A_EPHHM <dbl>, D5ar <dbl>, Tranmilescap <dbl>, D4c <dbl>,
## # D3bpo4 <dbl>, D4b050 <dbl>, D5cr <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 13
## metro HHSIZE WRKCOUNT LogIncome Age65Plus VehPerDriver TRPOPDEN EMPTOT_5
## <chr> <dbl> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 metro 2 1 11 0 1 6.21 34317
## # ... with 5 more variables: D4c <dbl>, D1B <dbl>, D3bpo4 <dbl>,
## # D4b050 <dbl>, D5cr <dbl>
## $metro
##
## Call:
## pscl::hurdle(formula = AADVMT.int ~ HHSIZE + WRKCOUNT + CENSUS_R +
## LogIncome + Age65Plus + ns(log1p(VehPerDriver), 3) + log1p(EMPTOT_5) +
## D1D + D1B:D2A_EPHHM + Tranmilescap + Tranmilescap:D4c + D3bpo4 +
## D5cr + log1p(D5ar) | HHSIZE + WRKCOUNT + LogIncome + Age65Plus +
## ns(log1p(VehPerDriver), 3) + log1p(TRPOPDEN) + D1D + D1B:D2A_EPHHM,
## data = ., na.action = na.omit, dist = "negbin")
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -1.661 -0.687 -0.162 0.487 10.340
##
## Count model coefficients (truncated negbin with log link):
## Estimate Std. Error z value
## (Intercept) 0.89970519 0.09268076 9.71
## HHSIZE 0.16382650 0.00284139 57.66
## WRKCOUNT 0.20013700 0.00430434 46.50
## CENSUS_RNE -0.05112750 0.01653954 -3.09
## CENSUS_RS 0.01912644 0.01381960 1.38
## CENSUS_RW -0.04339702 0.01398575 -3.10
## LogIncome 0.17950346 0.00418904 42.85
## Age65Plus -0.02955092 0.00452821 -6.53
## ns(log1p(VehPerDriver), 3)1 1.17534504 0.03149848 37.31
## ns(log1p(VehPerDriver), 3)2 1.89344058 0.14347967 13.20
## ns(log1p(VehPerDriver), 3)3 1.01596364 0.14085107 7.21
## log1p(EMPTOT_5) -0.04854219 0.00465036 -10.44
## D1D -0.00029149 0.00018187 -1.60
## Tranmilescap -0.00167250 0.00039066 -4.28
## D3bpo4 -0.00033293 0.00012595 -2.64
## D5cr -18.44187095 6.47784739 -2.85
## log1p(D5ar) 0.01582913 0.00725941 2.18
## D1B:D2A_EPHHM -0.00141446 0.00054582 -2.59
## Tranmilescap:D4c -0.00000613 0.00000236 -2.59
## Log(theta) 1.05450724 0.00753698 139.91
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT < 0.0000000000000002 ***
## CENSUS_RNE 0.0020 **
## CENSUS_RS 0.1664
## CENSUS_RW 0.0019 **
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.00000000006757 ***
## ns(log1p(VehPerDriver), 3)1 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)2 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)3 0.00000000000055 ***
## log1p(EMPTOT_5) < 0.0000000000000002 ***
## D1D 0.1090
## Tranmilescap 0.00001858655538 ***
## D3bpo4 0.0082 **
## D5cr 0.0044 **
## log1p(D5ar) 0.0292 *
## D1B:D2A_EPHHM 0.0096 **
## Tranmilescap:D4c 0.0095 **
## Log(theta) < 0.0000000000000002 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -8.05823 0.65520 -12.30
## HHSIZE -0.12906 0.03851 -3.35
## WRKCOUNT 1.19329 0.09631 12.39
## LogIncome 0.71847 0.05045 14.24
## Age65Plus 0.46273 0.07781 5.95
## ns(log1p(VehPerDriver), 3)1 1.35483 0.51821 2.61
## ns(log1p(VehPerDriver), 3)2 13.97910 1.93649 7.22
## ns(log1p(VehPerDriver), 3)3 9.41377 3.39600 2.77
## log1p(TRPOPDEN) -0.48856 0.07674 -6.37
## D1D 0.00880 0.00482 1.82
## D1B:D2A_EPHHM -0.02015 0.00826 -2.44
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## HHSIZE 0.0008 ***
## WRKCOUNT < 0.0000000000000002 ***
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.00000000273370 ***
## ns(log1p(VehPerDriver), 3)1 0.0089 **
## ns(log1p(VehPerDriver), 3)2 0.00000000000052 ***
## ns(log1p(VehPerDriver), 3)3 0.0056 **
## log1p(TRPOPDEN) 0.00000000019327 ***
## D1D 0.0681 .
## D1B:D2A_EPHHM 0.0147 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Theta: count = 2.871
## Number of iterations in BFGS optimization: 37
## Log-likelihood: -1.95e+05 on 31 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = AADVMT.int ~ HHSIZE + WRKCOUNT + CENSUS_R +
## LogIncome + Age65Plus + ns(log1p(VehPerDriver), 3) + log1p(TRPOPDEN) +
## log1p(EMPTOT_5) + D1D + D1B:D2A_EPHHM + log1p(D5ar) | WRKCOUNT +
## CENSUS_R + LogIncome + Age65Plus + ns(log1p(VehPerDriver), 3) +
## log1p(EMPTOT_5) + D1B:D2A_EPHHM + D5cr, data = ., na.action = na.omit,
## dist = "negbin")
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -1.705 -0.686 -0.159 0.479 11.692
##
## Count model coefficients (truncated negbin with log link):
## Estimate Std. Error z value
## (Intercept) 0.980790 0.057034 17.20
## HHSIZE 0.173628 0.002259 76.85
## WRKCOUNT 0.182885 0.003206 57.05
## CENSUS_RNE -0.055240 0.008368 -6.60
## CENSUS_RS 0.056559 0.006663 8.49
## CENSUS_RW -0.042398 0.008978 -4.72
## LogIncome 0.201706 0.002999 67.26
## Age65Plus -0.016150 0.003243 -4.98
## ns(log1p(VehPerDriver), 3)1 1.143661 0.025058 45.64
## ns(log1p(VehPerDriver), 3)2 1.403298 0.107057 13.11
## ns(log1p(VehPerDriver), 3)3 1.020795 0.089407 11.42
## log1p(TRPOPDEN) -0.033976 0.005480 -6.20
## log1p(EMPTOT_5) -0.024043 0.001695 -14.18
## D1D -0.001678 0.000898 -1.87
## log1p(D5ar) -0.007126 0.002498 -2.85
## D1B:D2A_EPHHM -0.005352 0.002194 -2.44
## Log(theta) 1.091461 0.005492 198.75
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT < 0.0000000000000002 ***
## CENSUS_RNE 0.000000000041 ***
## CENSUS_RS < 0.0000000000000002 ***
## CENSUS_RW 0.000002330874 ***
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.000000633245 ***
## ns(log1p(VehPerDriver), 3)1 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)2 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)3 < 0.0000000000000002 ***
## log1p(TRPOPDEN) 0.000000000565 ***
## log1p(EMPTOT_5) < 0.0000000000000002 ***
## D1D 0.0617 .
## log1p(D5ar) 0.0043 **
## D1B:D2A_EPHHM 0.0147 *
## Log(theta) < 0.0000000000000002 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -7.9280 0.5914 -13.41
## WRKCOUNT 1.1207 0.0903 12.42
## CENSUS_RNE -0.4199 0.1890 -2.22
## CENSUS_RS -0.3657 0.1579 -2.32
## CENSUS_RW -0.4677 0.1926 -2.43
## LogIncome 0.7077 0.0461 15.34
## Age65Plus 0.3883 0.0640 6.07
## ns(log1p(VehPerDriver), 3)1 2.0963 0.4061 5.16
## ns(log1p(VehPerDriver), 3)2 13.4219 1.3935 9.63
## ns(log1p(VehPerDriver), 3)3 7.3452 2.3526 3.12
## log1p(EMPTOT_5) -0.0988 0.0252 -3.93
## D5cr 9.7344 5.2370 1.86
## D1B:D2A_EPHHM -0.0573 0.0214 -2.67
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## WRKCOUNT < 0.0000000000000002 ***
## CENSUS_RNE 0.0263 *
## CENSUS_RS 0.0205 *
## CENSUS_RW 0.0152 *
## LogIncome < 0.0000000000000002 ***
## Age65Plus 0.0000000013 ***
## ns(log1p(VehPerDriver), 3)1 0.0000002449 ***
## ns(log1p(VehPerDriver), 3)2 < 0.0000000000000002 ***
## ns(log1p(VehPerDriver), 3)3 0.0018 **
## log1p(EMPTOT_5) 0.0000867023 ***
## D5cr 0.0631 .
## D1B:D2A_EPHHM 0.0076 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Theta: count = 2.979
## Number of iterations in BFGS optimization: 26
## Log-likelihood: -3.55e+05 on 30 Df
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 30.9 | 0.045 |
| non_metro | 35.0 | 0.046 |
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus TRPOPDEN EMPTOT_5
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 2 1 S 10.8 0 0.623 3323
## 2 metro 2 1 S 11.0 0 6.210 34317
## # ... with 8 more variables: D1D <dbl>, D1B <dbl>, D2A_EPHHM <dbl>,
## # D5ar <dbl>, D5cr <dbl>, Tranmilescap <dbl>, D4c <dbl>, D3bpo4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE WRKCOUNT CENSUS_R Age65Plus VehPerDriver TRPOPDEN
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 2 1 S 0 1 0.623
## 2 metro 2 1 S 0 1 6.210
## # ... with 9 more variables: EMPTOT_5 <dbl>, D1D <dbl>, D1B <dbl>,
## # D2A_EPHHM <dbl>, D5ar <dbl>, D5cr <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>, D3bpo4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus VehPerDriver
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 2 1 S 10.8 0 1
## 2 metro 2 1 S 11.0 0 1
## # ... with 9 more variables: TRPOPDEN <dbl>, EMPTOT_5 <dbl>, D1D <dbl>,
## # D2A_EPHHM <dbl>, D5ar <dbl>, D5cr <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>, D3bpo4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus VehPerDriver
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 2 1 S 10.8 0 1
## 2 metro 2 1 S 11.0 0 1
## # ... with 9 more variables: EMPTOT_5 <dbl>, D1D <dbl>, D1B <dbl>,
## # D2A_EPHHM <dbl>, D5ar <dbl>, D5cr <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>, D3bpo4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 16
## metro HHSIZE WRKCOUNT CENSUS_R LogIncome Age65Plus VehPerDriver EMPTOT_5
## <chr> <dbl> <dbl> <chr> <dbl> <int> <dbl> <dbl>
## 1 metro 2 1 S 11 0 1 34317
## # ... with 8 more variables: D1D <dbl>, D1B <dbl>, D2A_EPHHM <dbl>,
## # D4c <dbl>, D3bpo4 <dbl>, D5cr <dbl>, D5ar <dbl>, TRPOPDEN <dbl>
The AADVMT hurdle model adds more complexity yet brings little benefits in terms of prediction accuracies (rmse) or sensitivities, thus the AADVMT power-transformed model is preferred.
## $metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Transit) ~ log1p(VehPerDriver) +
## HHSIZE + WRKCOUNT + LIF_CYC + Age0to14 + LogIncome + D1D + D2A_EPHHM +
## Fwylnmicap + Tranmilescap + D4c | AADVMT + VehPerDriver + HHSIZE +
## WRKCOUNT + LIF_CYC + Age0to14 + D1D + D3bmm4 + Fwylnmicap +
## Tranmilescap:D4c + LogIncome, data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -3.221 -0.268 -0.153 -0.117 27.418
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 1.9212620 0.0995875 19.29
## log1p(VehPerDriver) -0.1291904 0.0355742 -3.63
## HHSIZE 0.0653538 0.0063841 10.24
## WRKCOUNT 0.0268560 0.0084115 3.19
## LIF_CYCCouple w/o children 0.2762891 0.0214246 12.90
## LIF_CYCEmpty Nester 0.2650850 0.0240630 11.02
## LIF_CYCSingle 0.3283556 0.0369382 8.89
## Age0to14 -0.0193269 0.0086041 -2.25
## LogIncome 0.0239053 0.0084591 2.83
## D1D -0.0014416 0.0001659 -8.69
## D2A_EPHHM -0.0562551 0.0272781 -2.06
## Fwylnmicap -0.1631917 0.0418730 -3.90
## Tranmilescap 0.0027340 0.0004983 5.49
## D4c 0.0002471 0.0000742 3.33
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## log1p(VehPerDriver) 0.00028 ***
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT 0.00141 **
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 0.02469 *
## LogIncome 0.00471 **
## D1D < 0.0000000000000002 ***
## D2A_EPHHM 0.03918 *
## Fwylnmicap 0.000097270 ***
## Tranmilescap 0.000000041 ***
## D4c 0.00087 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -0.9625233 0.3684409 -2.61
## AADVMT -0.0037454 0.0006157 -6.08
## VehPerDriver -0.7904598 0.0731318 -10.81
## HHSIZE 0.0620903 0.0249369 2.49
## WRKCOUNT 0.3095209 0.0307155 10.08
## LIF_CYCCouple w/o children -1.1173552 0.0773660 -14.44
## LIF_CYCEmpty Nester -1.6122166 0.0893579 -18.04
## LIF_CYCSingle -1.3448620 0.1312501 -10.25
## Age0to14 0.4511670 0.0310501 14.53
## D1D 0.0060544 0.0008202 7.38
## D3bmm4 0.0030048 0.0018077 1.66
## Fwylnmicap -0.2489311 0.1327192 -1.88
## LogIncome -0.0744235 0.0313442 -2.37
## Tranmilescap:D4c 0.0001073 0.0000167 6.43
## Pr(>|z|)
## (Intercept) 0.009 **
## AADVMT 0.00000000117985 ***
## VehPerDriver < 0.0000000000000002 ***
## HHSIZE 0.013 *
## WRKCOUNT < 0.0000000000000002 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.00000000000016 ***
## D3bmm4 0.096 .
## Fwylnmicap 0.061 .
## LogIncome 0.018 *
## Tranmilescap:D4c 0.00000000013145 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 30
## Log-likelihood: -2.06e+04 on 28 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Transit) ~ log1p(VehPerDriver) +
## HHSIZE + WRKCOUNT + LIF_CYC + LogIncome + UZAPOPDEN + D2A_EPHHM |
## AADVMT + VehPerDriver + HHSIZE + WRKCOUNT + LIF_CYC + Age0to14 +
## Age65Plus + LogIncome + D3apo + WRKCOUNT + CENSUS_R, data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -1.1727 -0.1312 -0.0775 -0.0651 61.3687
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 2.35475 0.14358 16.40
## log1p(VehPerDriver) 0.07368 0.04643 1.59
## HHSIZE 0.08088 0.00833 9.71
## WRKCOUNT 0.00169 0.01235 0.14
## LIF_CYCCouple w/o children -0.10792 0.05199 -2.08
## LIF_CYCEmpty Nester 0.30676 0.04500 6.82
## LIF_CYCSingle -0.13659 0.10128 -1.35
## LogIncome -0.02427 0.01286 -1.89
## UZAPOPDEN -0.04786 0.00784 -6.11
## D2A_EPHHM -0.24876 0.03980 -6.25
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## log1p(VehPerDriver) 0.113
## HHSIZE < 0.0000000000000002 ***
## WRKCOUNT 0.891
## LIF_CYCCouple w/o children 0.038 *
## LIF_CYCEmpty Nester 0.0000000000093 ***
## LIF_CYCSingle 0.177
## LogIncome 0.059 .
## UZAPOPDEN 0.0000000010246 ***
## D2A_EPHHM 0.0000000004118 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -0.499103 0.492886 -1.01
## AADVMT -0.000277 0.000651 -0.43
## VehPerDriver -0.132132 0.076127 -1.74
## HHSIZE -0.034550 0.035261 -0.98
## WRKCOUNT 0.123666 0.042565 2.91
## LIF_CYCCouple w/o children -2.399990 0.145637 -16.48
## LIF_CYCEmpty Nester -3.071090 0.178348 -17.22
## LIF_CYCSingle -2.887385 0.262570 -11.00
## Age0to14 0.535248 0.040731 13.14
## Age65Plus 0.130595 0.083443 1.57
## LogIncome -0.151872 0.043401 -3.50
## D3apo -0.019118 0.005504 -3.47
## CENSUS_RNE 0.666180 0.109336 6.09
## CENSUS_RS 0.075224 0.089570 0.84
## CENSUS_RW -0.190835 0.114349 -1.67
## Pr(>|z|)
## (Intercept) 0.31124
## AADVMT 0.67033
## VehPerDriver 0.08262 .
## HHSIZE 0.32717
## WRKCOUNT 0.00367 **
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 < 0.0000000000000002 ***
## Age65Plus 0.11757
## LogIncome 0.00047 ***
## D3apo 0.00051 ***
## CENSUS_RNE 0.0000000011 ***
## CENSUS_RS 0.40100
## CENSUS_RW 0.09514 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 35
## Log-likelihood: -9.83e+03 on 25 Df
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 3.37 | 0.440 |
| non_metro | 2.33 | 0.678 |
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro VehPerDriver WRKCOUNT LIF_CYC LogIncome UZAPOPDEN
## <chr> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 1 1 Empty Nester 10.8 2.16
## 2 metro 1 1 Empty Nester 11.0 NA
## # ... with 11 more variables: D2A_EPHHM <dbl>, AADVMT <dbl>,
## # Age0to14 <dbl>, Age65Plus <dbl>, D3apo <dbl>, CENSUS_R <chr>,
## # D1D <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>, D4c <dbl>,
## # D3bmm4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro HHSIZE WRKCOUNT LIF_CYC LogIncome UZAPOPDEN D2A_EPHHM
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 2 1 Empty Nester 10.8 2.16 0.486
## 2 metro 2 1 Empty Nester 11.0 NA 0.446
## # ... with 10 more variables: AADVMT <dbl>, Age0to14 <dbl>,
## # Age65Plus <dbl>, D3apo <dbl>, CENSUS_R <chr>, D1D <dbl>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>, D4c <dbl>, D3bmm4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro VehPerDriver HHSIZE WRKCOUNT LIF_CYC LogIncome UZAPOPDEN
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 1 2 1 Empty Nester 10.8 2.16
## 2 metro 1 2 1 Empty Nester 11.0 NA
## # ... with 10 more variables: D2A_EPHHM <dbl>, AADVMT <dbl>,
## # Age0to14 <dbl>, Age65Plus <dbl>, D3apo <dbl>, CENSUS_R <chr>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>, D4c <dbl>, D3bmm4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro VehPerDriver HHSIZE WRKCOUNT LIF_CYC UZAPOPDEN D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 1 2 1 Empty Nester 2.16 0.486
## 2 metro 1 2 1 Empty Nester NA 0.446
## # ... with 10 more variables: AADVMT <dbl>, Age0to14 <dbl>,
## # Age65Plus <dbl>, D3apo <dbl>, CENSUS_R <chr>, D1D <dbl>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>, D4c <dbl>, D3bmm4 <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 13
## metro VehPerDriver HHSIZE WRKCOUNT LIF_CYC Age0to14 LogIncome D1D
## <chr> <dbl> <dbl> <dbl> <chr> <int> <dbl> <dbl>
## 1 metro 1 2 1 Empty Nester 0 11 4.05
## # ... with 5 more variables: D2A_EPHHM <dbl>, Fwylnmicap <dbl>, D4c <dbl>,
## # AADVMT <dbl>, D3bmm4 <dbl>
## $metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Walk) ~ VehPerDriver +
## HHSIZE + LIF_CYC + Age0to14 + D3bpo4 + Fwylnmicap + LogIncome |
## AADVMT + VehPerDriver + HHSIZE + LIF_CYC + Age0to14 + D1D +
## D2A_EPHHM + D3bmm4 + D3bpo4 + log1p(D5ar) + WRKCOUNT + Fwylnmicap +
## Tranmilescap + LogIncome + D3apo + D4c, data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -1.790 -0.464 -0.391 -0.308 11.189
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) -0.907874 0.178813 -5.08
## VehPerDriver -0.049935 0.023479 -2.13
## HHSIZE 0.060988 0.011543 5.28
## LIF_CYCCouple w/o children 0.119167 0.032594 3.66
## LIF_CYCEmpty Nester 0.101605 0.033228 3.06
## LIF_CYCSingle -0.013599 0.056549 -0.24
## Age0to14 0.029688 0.016598 1.79
## D3bpo4 0.000793 0.000324 2.45
## Fwylnmicap -0.192943 0.060215 -3.20
## LogIncome 0.120746 0.014843 8.14
## Pr(>|z|)
## (Intercept) 0.00000038298006387 ***
## VehPerDriver 0.03344 *
## HHSIZE 0.00000012661306718 ***
## LIF_CYCCouple w/o children 0.00026 ***
## LIF_CYCEmpty Nester 0.00223 **
## LIF_CYCSingle 0.80996
## Age0to14 0.07368 .
## D3bpo4 0.01444 *
## Fwylnmicap 0.00135 **
## LogIncome 0.00000000000000041 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -4.979544 0.321668 -15.48
## AADVMT -0.001166 0.000340 -3.43
## VehPerDriver -0.148921 0.032310 -4.61
## HHSIZE 0.114471 0.017515 6.54
## LIF_CYCCouple w/o children -0.142909 0.044715 -3.20
## LIF_CYCEmpty Nester -0.130785 0.046719 -2.80
## LIF_CYCSingle -0.293153 0.068551 -4.28
## Age0to14 0.071010 0.024451 2.90
## D1D 0.004764 0.000746 6.39
## D2A_EPHHM 0.115757 0.059287 1.95
## D3bmm4 0.007500 0.001159 6.47
## D3bpo4 0.001503 0.000649 2.32
## log1p(D5ar) 0.082948 0.020039 4.14
## WRKCOUNT 0.114242 0.019435 5.88
## Fwylnmicap -0.316740 0.083843 -3.78
## Tranmilescap 0.007186 0.001188 6.05
## LogIncome 0.208929 0.019745 10.58
## D3apo 0.009509 0.002987 3.18
## D4c 0.000541 0.000195 2.77
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00059 ***
## VehPerDriver 0.000004042816 ***
## HHSIZE 0.000000000063 ***
## LIF_CYCCouple w/o children 0.00139 **
## LIF_CYCEmpty Nester 0.00512 **
## LIF_CYCSingle 0.000018992770 ***
## Age0to14 0.00368 **
## D1D 0.000000000167 ***
## D2A_EPHHM 0.05088 .
## D3bmm4 0.000000000098 ***
## D3bpo4 0.02052 *
## log1p(D5ar) 0.000034850086 ***
## WRKCOUNT 0.000000004148 ***
## Fwylnmicap 0.00016 ***
## Tranmilescap 0.000000001453 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.00146 **
## D4c 0.00560 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 22
## Log-likelihood: -3.11e+04 on 29 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Walk) ~ HHSIZE + LIF_CYC +
## D3apo + LogIncome | AADVMT + VehPerDriver + HHSIZE + LIF_CYC +
## Age0to14 + D1D + D2A_EPHHM + WRKCOUNT + LogIncome + D3apo, data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.944 -0.386 -0.338 -0.283 13.422
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) -1.35795 0.16263 -8.35
## HHSIZE 0.04621 0.01102 4.19
## LIF_CYCCouple w/o children 0.06395 0.03266 1.96
## LIF_CYCEmpty Nester 0.07535 0.03276 2.30
## LIF_CYCSingle 0.11151 0.05509 2.02
## D3apo 0.00407 0.00149 2.73
## LogIncome 0.14341 0.01398 10.26
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## HHSIZE 0.000027 ***
## LIF_CYCCouple w/o children 0.0502 .
## LIF_CYCEmpty Nester 0.0215 *
## LIF_CYCSingle 0.0430 *
## D3apo 0.0063 **
## LogIncome < 0.0000000000000002 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -5.004156 0.189416 -26.42
## AADVMT -0.000568 0.000254 -2.24
## VehPerDriver -0.201467 0.023947 -8.41
## HHSIZE 0.087666 0.016330 5.37
## LIF_CYCCouple w/o children -0.087148 0.039682 -2.20
## LIF_CYCEmpty Nester -0.062195 0.041998 -1.48
## LIF_CYCSingle -0.138422 0.062963 -2.20
## Age0to14 0.112863 0.021986 5.13
## D1D 0.020040 0.003220 6.22
## D2A_EPHHM 0.089203 0.050131 1.78
## WRKCOUNT 0.073121 0.016876 4.33
## LogIncome 0.286021 0.016677 17.15
## D3apo 0.016426 0.002109 7.79
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.025 *
## VehPerDriver < 0.0000000000000002 ***
## HHSIZE 0.0000000793832374 ***
## LIF_CYCCouple w/o children 0.028 *
## LIF_CYCEmpty Nester 0.139
## LIF_CYCSingle 0.028 *
## Age0to14 0.0000002845411910 ***
## D1D 0.0000000004846051 ***
## D2A_EPHHM 0.075 .
## WRKCOUNT 0.0000147146567698 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.0000000000000068 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 24
## Log-likelihood: -4.14e+04 on 20 Df
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 1.014 | 0.340 |
| non_metro | 0.806 | 0.122 |
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE LIF_CYC D3apo LogIncome VehPerDriver Age0to14
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 2 Empty Nester 4.18 10.8 1 0
## 2 metro 2 Empty Nester 13.58 11.0 1 0
## # ... with 9 more variables: D1D <dbl>, D2A_EPHHM <dbl>, WRKCOUNT <dbl>,
## # D3bpo4 <dbl>, Fwylnmicap <dbl>, D3bmm4 <dbl>, D5ar <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE LIF_CYC D3apo LogIncome AADVMT Age0to14 D1D
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 2 Empty Nester 4.18 10.8 52.6 0 0.564
## 2 metro 2 Empty Nester 13.58 11.0 46.7 0 4.052
## # ... with 8 more variables: D2A_EPHHM <dbl>, WRKCOUNT <dbl>,
## # D3bpo4 <dbl>, Fwylnmicap <dbl>, D3bmm4 <dbl>, D5ar <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE LIF_CYC D3apo LogIncome AADVMT VehPerDriver
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 2 Empty Nester 4.18 10.8 52.6 1
## 2 metro 2 Empty Nester 13.58 11.0 46.7 1
## # ... with 9 more variables: Age0to14 <dbl>, D2A_EPHHM <dbl>,
## # WRKCOUNT <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>, D3bmm4 <dbl>,
## # D5ar <dbl>, Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro HHSIZE LIF_CYC D3apo AADVMT VehPerDriver Age0to14 D1D
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 2 Empty Nester 4.18 52.6 1 0 0.564
## 2 metro 2 Empty Nester 13.58 46.7 1 0 4.052
## # ... with 8 more variables: D2A_EPHHM <dbl>, WRKCOUNT <dbl>,
## # D3bpo4 <dbl>, Fwylnmicap <dbl>, D3bmm4 <dbl>, D5ar <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 16
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 D3bpo4 Fwylnmicap
## <chr> <dbl> <dbl> <chr> <int> <dbl> <dbl>
## 1 metro 1 2 Empty Nester 0 10.1 0.624
## # ... with 9 more variables: LogIncome <dbl>, AADVMT <dbl>, D1D <dbl>,
## # D2A_EPHHM <dbl>, D3bmm4 <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # D3apo <dbl>, D4c <dbl>
## $metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Bike) ~ LIF_CYC + Age0to14 +
## D3apo | log1p(VehPerDriver) + HHSIZE + WRKCOUNT + LIF_CYC +
## Age0to14 + D3bpo4 + Fwylnmicap + Tranmilescap:D4c + Tranmilescap,
## data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.6224 -0.1198 -0.0901 -0.0763 22.6290
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.65068 0.10133 6.42 0.00000000013 ***
## LIF_CYCCouple w/o children 0.29517 0.09756 3.03 0.0025 **
## LIF_CYCEmpty Nester 0.14039 0.09390 1.50 0.1349
## LIF_CYCSingle 0.14000 0.14464 0.97 0.3331
## Age0to14 -0.11177 0.04795 -2.33 0.0197 *
## D3apo -0.00443 0.00509 -0.87 0.3840
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -2.8757916 0.2657413 -10.82
## log1p(VehPerDriver) -0.7692363 0.1750131 -4.40
## HHSIZE 0.0723571 0.0412962 1.75
## WRKCOUNT 0.1737007 0.0507142 3.43
## LIF_CYCCouple w/o children -0.5943595 0.1340230 -4.43
## LIF_CYCEmpty Nester -0.6467664 0.1358374 -4.76
## LIF_CYCSingle -0.6461547 0.2050500 -3.15
## Age0to14 0.4389457 0.0533470 8.23
## D3bpo4 0.0046401 0.0012066 3.85
## Fwylnmicap -1.1209505 0.2404129 -4.66
## Tranmilescap -0.0209388 0.0040677 -5.15
## Tranmilescap:D4c -0.0000300 0.0000142 -2.10
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## log1p(VehPerDriver) 0.00001106 ***
## HHSIZE 0.07975 .
## WRKCOUNT 0.00061 ***
## LIF_CYCCouple w/o children 0.00000922 ***
## LIF_CYCEmpty Nester 0.00000192 ***
## LIF_CYCSingle 0.00163 **
## Age0to14 < 0.0000000000000002 ***
## D3bpo4 0.00012 ***
## Fwylnmicap 0.00000312 ***
## Tranmilescap 0.00000026 ***
## Tranmilescap:D4c 0.03535 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 24
## Log-likelihood: -4.5e+03 on 18 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = int_round(td.miles.Bike) ~ Age0to14 + D3bpo4 |
## AADVMT + log1p(VehPerDriver) + LIF_CYC + Age0to14 + LogIncome,
## data = .)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.5517 -0.0963 -0.0617 -0.0566 31.4488
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.22866 0.06086 3.76 0.00017 ***
## Age0to14 -0.10417 0.04887 -2.13 0.03303 *
## D3bpo4 0.00261 0.00190 1.38 0.16839
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -5.784563 0.664318 -8.71
## AADVMT -0.001752 0.000908 -1.93
## log1p(VehPerDriver) -0.649427 0.229176 -2.83
## LIF_CYCCouple w/o children -1.133926 0.142812 -7.94
## LIF_CYCEmpty Nester -1.134590 0.125830 -9.02
## LIF_CYCSingle -0.934868 0.211834 -4.41
## Age0to14 0.474818 0.045337 10.47
## LogIncome 0.194778 0.060384 3.23
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.0537 .
## log1p(VehPerDriver) 0.0046 **
## LIF_CYCCouple w/o children 0.000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle 0.000010184556702 ***
## Age0to14 < 0.0000000000000002 ***
## LogIncome 0.0013 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 16
## Log-likelihood: -4.01e+03 on 11 Df
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 0.313 | 0.237 |
| non_metro | 0.179 | 0.161 |
## [1] "Typical values:\n"
## # A tibble: 2 × 12
## metro Age0to14 D3bpo4 VehPerDriver LIF_CYC LogIncome D3apo
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 0 1.42 1 Empty Nester 10.8 NA
## 2 metro 0 10.09 1 Empty Nester NA 13.6
## # ... with 5 more variables: HHSIZE <dbl>, WRKCOUNT <dbl>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 12
## metro Age0to14 D3bpo4 AADVMT LIF_CYC LogIncome D3apo HHSIZE
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 0 1.42 52.6 Empty Nester 10.8 NA NA
## 2 metro 0 10.09 NA Empty Nester NA 13.6 2
## # ... with 4 more variables: WRKCOUNT <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 12
## metro Age0to14 D3bpo4 AADVMT VehPerDriver LIF_CYC D3apo HHSIZE
## <chr> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 0 1.42 52.6 1 Empty Nester NA NA
## 2 metro 0 10.09 NA 1 Empty Nester 13.6 2
## # ... with 4 more variables: WRKCOUNT <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 10
## metro LIF_CYC Age0to14 D3apo VehPerDriver HHSIZE WRKCOUNT D3bpo4
## <chr> <chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 metro Empty Nester 0 13.6 1 2 1 10.1
## # ... with 2 more variables: Fwylnmicap <dbl>, D4c <dbl>
An alternative model structure we propose is a combination of household level models of trip frequency and average trip length by mode (Figure 2).
Figure 2: Flow Chart of Trip Frequency-Length Model
The trip frequency models of Transit, Bike, and Walk are hurdle models of dependent variable (# Trips): \((\# Trips) = zinb(X\beta)\). The hurdle models allows the “inflated” zeros in Transit, Bike, and Walk trip counts to be accounted. It differs from a hurdle model in that a hurdle model allows zeros to arise from both the zero inflation process and the count process, while a hurdle model only allows zeros to arise from the zero hurdle process but not the count process. Like other models, the trip frequency models are segmented by metro and non-metro areas.
## $metro
##
## Call:
## pscl::hurdle(formula = ntrips.Transit ~ AADVMT + HHSIZE + LIF_CYC +
## Age0to14 + D1D + Tranmilescap + D4c | AADVMT + VehPerDriver +
## HHSIZE + WRKCOUNT + LIF_CYC + Age0to14 + D1D + Fwylnmicap +
## Tranmilescap:D4c, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -2.457 -0.254 -0.155 -0.115 32.570
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 0.048617 0.057046 0.85
## AADVMT -0.001171 0.000338 -3.47
## HHSIZE 0.112374 0.012259 9.17
## LIF_CYCCouple w/o children 0.148899 0.050201 2.97
## LIF_CYCEmpty Nester 0.150393 0.055856 2.69
## LIF_CYCSingle 0.006653 0.097939 0.07
## Age0to14 0.167051 0.016449 10.16
## D1D -0.000692 0.000313 -2.21
## Tranmilescap 0.005202 0.000920 5.65
## D4c 0.000694 0.000158 4.39
## Pr(>|z|)
## (Intercept) 0.39408
## AADVMT 0.00053 ***
## HHSIZE < 0.0000000000000002 ***
## LIF_CYCCouple w/o children 0.00302 **
## LIF_CYCEmpty Nester 0.00709 **
## LIF_CYCSingle 0.94584
## Age0to14 < 0.0000000000000002 ***
## D1D 0.02689 *
## Tranmilescap 0.000000016 ***
## D4c 0.000011527 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -1.5660306 0.1334279 -11.74
## AADVMT -0.0039284 0.0005527 -7.11
## VehPerDriver -0.8753771 0.0668357 -13.10
## HHSIZE 0.1124917 0.0225501 4.99
## WRKCOUNT 0.2854531 0.0273473 10.44
## LIF_CYCCouple w/o children -0.9103851 0.0678056 -13.43
## LIF_CYCEmpty Nester -1.5156797 0.0790749 -19.17
## LIF_CYCSingle -1.1199809 0.1148641 -9.75
## Age0to14 0.4018514 0.0285833 14.06
## D1D 0.0063118 0.0007727 8.17
## Fwylnmicap -0.4099763 0.1208247 -3.39
## Tranmilescap:D4c 0.0001036 0.0000148 6.99
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00000000000117882 ***
## VehPerDriver < 0.0000000000000002 ***
## HHSIZE 0.00000060841501968 ***
## WRKCOUNT < 0.0000000000000002 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.00000000000000031 ***
## Fwylnmicap 0.00069 ***
## Tranmilescap:D4c 0.00000000000267718 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 32
## Log-likelihood: -1.39e+04 on 22 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = ntrips.Transit ~ log1p(AADVMT) + log1p(VehPerDriver) +
## HHSIZE + LIF_CYC + Age0to14 + LogIncome + D1D | log1p(AADVMT) +
## log1p(VehPerDriver) + WRKCOUNT + LIF_CYC + Age0to14 + D1B +
## D3bmm4 + LogIncome, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -2.0226 -0.1014 -0.0818 -0.0718 56.3148
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 0.4628 0.1781 2.60
## log1p(AADVMT) -0.0397 0.0188 -2.12
## log1p(VehPerDriver) 0.1421 0.0636 2.23
## HHSIZE 0.1421 0.0110 12.87
## LIF_CYCCouple w/o children 0.3869 0.0709 5.46
## LIF_CYCEmpty Nester 0.4382 0.0663 6.61
## LIF_CYCSingle 0.5946 0.1258 4.73
## Age0to14 0.2310 0.0150 15.43
## LogIncome -0.0467 0.0165 -2.83
## D1D -0.0158 0.0047 -3.37
## Pr(>|z|)
## (Intercept) 0.00934 **
## log1p(AADVMT) 0.03442 *
## log1p(VehPerDriver) 0.02555 *
## HHSIZE < 0.0000000000000002 ***
## LIF_CYCCouple w/o children 0.000000048842 ***
## LIF_CYCEmpty Nester 0.000000000038 ***
## LIF_CYCSingle 0.000002285863 ***
## Age0to14 < 0.0000000000000002 ***
## LogIncome 0.00468 **
## D1D 0.00076 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -0.71019 0.27560 -2.58
## log1p(AADVMT) -0.08173 0.02803 -2.92
## log1p(VehPerDriver) -0.23302 0.09966 -2.34
## WRKCOUNT 0.11309 0.02412 4.69
## LIF_CYCCouple w/o children -2.50520 0.08279 -30.26
## LIF_CYCEmpty Nester -2.92327 0.08555 -34.17
## LIF_CYCSingle -2.75239 0.15258 -18.04
## Age0to14 0.53435 0.01964 27.21
## D1B -0.03508 0.00693 -5.07
## D3bmm4 -0.01023 0.00441 -2.32
## LogIncome -0.07992 0.02634 -3.03
## Pr(>|z|)
## (Intercept) 0.0100 **
## log1p(AADVMT) 0.0035 **
## log1p(VehPerDriver) 0.0194 *
## WRKCOUNT 0.00000276 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 < 0.0000000000000002 ***
## D1B 0.00000041 ***
## D3bmm4 0.0204 *
## LogIncome 0.0024 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 23
## Log-likelihood: -1.69e+04 on 21 Df
2 validation
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 0.704 | 0.125 |
| non_metro | 0.651 | 0.203 |
## [1] "Typical values:\n"
## # A tibble: 2 × 13
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 LogIncome D1D
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 1 2 Empty Nester 0 10.8 0.564
## 2 metro 1 2 Empty Nester 0 NA 4.052
## # ... with 6 more variables: WRKCOUNT <dbl>, D1B <dbl>, D3bmm4 <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>, Fwylnmicap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 13
## metro AADVMT HHSIZE LIF_CYC Age0to14 LogIncome D1D WRKCOUNT
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 52.6 2 Empty Nester 0 10.8 0.564 1
## 2 metro 46.7 2 Empty Nester 0 NA 4.052 1
## # ... with 5 more variables: D1B <dbl>, D3bmm4 <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>, Fwylnmicap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 13
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 1 2 Empty Nester 0 4.052
## # ... with 6 more variables: WRKCOUNT <dbl>, D1B <dbl>, D3bmm4 <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>, Fwylnmicap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 13
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 LogIncome
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 10.8
## 2 metro 46.7 1 2 Empty Nester 0 NA
## # ... with 6 more variables: D1D <dbl>, WRKCOUNT <dbl>, D3bmm4 <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>, Fwylnmicap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 13
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 LogIncome
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 10.8
## 2 metro 46.7 1 2 Empty Nester 0 NA
## # ... with 6 more variables: WRKCOUNT <dbl>, D1B <dbl>, D3bmm4 <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>, Fwylnmicap <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 10
## metro AADVMT HHSIZE LIF_CYC Age0to14 D1D D4c VehPerDriver
## <chr> <dbl> <dbl> <chr> <int> <dbl> <dbl> <dbl>
## 1 metro 46.7 2 Empty Nester 0 4.05 6 1
## # ... with 2 more variables: WRKCOUNT <dbl>, Fwylnmicap <dbl>
## $metro
##
## Call:
## pscl::hurdle(formula = ntrips.Walk ~ AADVMT + VehPerDriver + HHSIZE +
## LIF_CYC + Age0to14 + D1D + D2A_EPHHM + D3bmm4 + D3bpo4 + log1p(D5ar) +
## Fwylnmicap + Tranmilescap + LogIncome + D3apo + D4c | AADVMT +
## VehPerDriver + HHSIZE + LIF_CYC + Age0to14 + D1D + D2A_EPHHM +
## D3bmm4 + D3bpo4 + log1p(D5ar) + WRKCOUNT + Fwylnmicap + Tranmilescap +
## LogIncome + D3apo + D4c, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -2.641 -0.546 -0.450 0.199 11.534
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 0.0802338 0.1536648 0.52
## AADVMT -0.0006170 0.0001596 -3.87
## VehPerDriver -0.0650766 0.0159765 -4.07
## HHSIZE 0.0651964 0.0071301 9.14
## LIF_CYCCouple w/o children 0.0813267 0.0204499 3.98
## LIF_CYCEmpty Nester 0.0167476 0.0209387 0.80
## LIF_CYCSingle -0.1538940 0.0359478 -4.28
## Age0to14 0.1793433 0.0095337 18.81
## D1D 0.0006848 0.0001096 6.25
## D2A_EPHHM 0.0761734 0.0288318 2.64
## D3bmm4 0.0021096 0.0004136 5.10
## D3bpo4 0.0007403 0.0002648 2.80
## log1p(D5ar) 0.0210751 0.0095098 2.22
## Fwylnmicap -0.2094614 0.0421487 -4.97
## Tranmilescap 0.0019508 0.0005488 3.55
## LogIncome 0.0400466 0.0089632 4.47
## D3apo 0.0028340 0.0014011 2.02
## D4c 0.0002770 0.0000791 3.50
## Pr(>|z|)
## (Intercept) 0.60158
## AADVMT 0.00011 ***
## VehPerDriver 0.00004635505 ***
## HHSIZE < 0.0000000000000002 ***
## LIF_CYCCouple w/o children 0.00006982667 ***
## LIF_CYCEmpty Nester 0.42380
## LIF_CYCSingle 0.00001860202 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.00000000042 ***
## D2A_EPHHM 0.00824 **
## D3bmm4 0.00000033883 ***
## D3bpo4 0.00518 **
## log1p(D5ar) 0.02668 *
## Fwylnmicap 0.00000067099 ***
## Tranmilescap 0.00038 ***
## LogIncome 0.00000789876 ***
## D3apo 0.04311 *
## D4c 0.00047 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -3.903656 0.288313 -13.54
## AADVMT -0.001077 0.000306 -3.52
## VehPerDriver -0.153593 0.028890 -5.32
## HHSIZE 0.113567 0.016150 7.03
## LIF_CYCCouple w/o children -0.156975 0.040791 -3.85
## LIF_CYCEmpty Nester -0.196054 0.042686 -4.59
## LIF_CYCSingle -0.267876 0.061440 -4.36
## Age0to14 0.102024 0.022601 4.51
## D1D 0.005675 0.000800 7.09
## D2A_EPHHM 0.112998 0.053774 2.10
## D3bmm4 0.006889 0.001097 6.28
## D3bpo4 0.002389 0.000600 3.99
## log1p(D5ar) 0.065014 0.018162 3.58
## WRKCOUNT 0.127119 0.017772 7.15
## Fwylnmicap -0.284345 0.075181 -3.78
## Tranmilescap 0.008533 0.001092 7.82
## LogIncome 0.162313 0.017547 9.25
## D3apo 0.008951 0.002727 3.28
## D4c 0.000546 0.000186 2.94
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00044 ***
## VehPerDriver 0.0000001057985019 ***
## HHSIZE 0.0000000000020331 ***
## LIF_CYCCouple w/o children 0.00012 ***
## LIF_CYCEmpty Nester 0.0000043699679874 ***
## LIF_CYCSingle 0.0000130101423261 ***
## Age0to14 0.0000063601029648 ***
## D1D 0.0000000000013458 ***
## D2A_EPHHM 0.03561 *
## D3bmm4 0.0000000003419777 ***
## D3bpo4 0.0000674005557160 ***
## log1p(D5ar) 0.00034 ***
## WRKCOUNT 0.0000000000008498 ***
## Fwylnmicap 0.00016 ***
## Tranmilescap 0.0000000000000054 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.00103 **
## D4c 0.00327 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 29
## Log-likelihood: -4.32e+04 on 37 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = ntrips.Walk ~ AADVMT + VehPerDriver + HHSIZE +
## LIF_CYC + Age0to14 + D1D + D2A_EPHHM + D3bpo4 + log1p(D5ar) +
## WRKCOUNT + LogIncome | AADVMT + VehPerDriver + HHSIZE + LIF_CYC +
## Age0to14 + D1D + D2A_EPHHM + D3bpo4 + WRKCOUNT + LogIncome +
## D3apo, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -1.297 -0.464 -0.401 -0.320 20.908
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value
## (Intercept) 0.372496 0.102020 3.65
## AADVMT -0.000330 0.000131 -2.52
## VehPerDriver -0.061605 0.012750 -4.83
## HHSIZE 0.043951 0.007593 5.79
## LIF_CYCCouple w/o children 0.047447 0.019996 2.37
## LIF_CYCEmpty Nester -0.007967 0.021060 -0.38
## LIF_CYCSingle -0.052733 0.034025 -1.55
## Age0to14 0.133062 0.009981 13.33
## D1D 0.009177 0.001087 8.44
## D2A_EPHHM 0.060782 0.026140 2.33
## D3bpo4 0.001138 0.000288 3.95
## log1p(D5ar) -0.009828 0.005216 -1.88
## WRKCOUNT -0.016309 0.008500 -1.92
## LogIncome 0.047562 0.008519 5.58
## Pr(>|z|)
## (Intercept) 0.00026 ***
## AADVMT 0.01179 *
## VehPerDriver 0.0000013526 ***
## HHSIZE 0.0000000071 ***
## LIF_CYCCouple w/o children 0.01765 *
## LIF_CYCEmpty Nester 0.70519
## LIF_CYCSingle 0.12118
## Age0to14 < 0.0000000000000002 ***
## D1D < 0.0000000000000002 ***
## D2A_EPHHM 0.02006 *
## D3bpo4 0.0000766857 ***
## log1p(D5ar) 0.05953 .
## WRKCOUNT 0.05501 .
## LogIncome 0.0000000236 ***
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -4.035095 0.162199 -24.88
## AADVMT -0.000651 0.000222 -2.93
## VehPerDriver -0.193868 0.020660 -9.38
## HHSIZE 0.092010 0.014375 6.40
## LIF_CYCCouple w/o children -0.143740 0.034839 -4.13
## LIF_CYCEmpty Nester -0.128328 0.036772 -3.49
## LIF_CYCSingle -0.199495 0.054693 -3.65
## Age0to14 0.104998 0.019551 5.37
## D1D 0.022151 0.003020 7.34
## D2A_EPHHM 0.115400 0.044049 2.62
## D3bpo4 -0.002354 0.000756 -3.11
## WRKCOUNT 0.078126 0.014819 5.27
## LogIncome 0.235719 0.014362 16.41
## D3apo 0.020123 0.002598 7.75
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00340 **
## VehPerDriver < 0.0000000000000002 ***
## HHSIZE 0.0000000001544648 ***
## LIF_CYCCouple w/o children 0.0000369449170576 ***
## LIF_CYCEmpty Nester 0.00048 ***
## LIF_CYCSingle 0.00026 ***
## Age0to14 0.0000000785595015 ***
## D1D 0.0000000000002207 ***
## D2A_EPHHM 0.00880 **
## D3bpo4 0.00184 **
## WRKCOUNT 0.0000001349459596 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.0000000000000095 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 26
## Log-likelihood: -6.02e+04 on 28 Df
2 validation
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 1.70 | 0.040 |
| non_metro | 1.42 | 0.022 |
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 1 2 Empty Nester 0 0.564 0.486
## 2 metro 1 2 Empty Nester 0 4.052 0.446
## # ... with 9 more variables: D3bpo4 <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # LogIncome <dbl>, D3apo <dbl>, D3bmm4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM D3bpo4
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 52.6 2 Empty Nester 0 0.564 0.486 1.42
## 2 metro 46.7 2 Empty Nester 0 4.052 0.446 10.09
## # ... with 8 more variables: D5ar <dbl>, WRKCOUNT <dbl>, LogIncome <dbl>,
## # D3apo <dbl>, D3bmm4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 1 2 Empty Nester 0 4.052
## # ... with 9 more variables: D2A_EPHHM <dbl>, D3bpo4 <dbl>, D5ar <dbl>,
## # WRKCOUNT <dbl>, D3apo <dbl>, D3bmm4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.486
## 2 metro 46.7 1 2 Empty Nester 0 0.446
## # ... with 9 more variables: D3bpo4 <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # LogIncome <dbl>, D3apo <dbl>, D3bmm4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <int> <dbl> <dbl>
## 1 metro 46.7 1 2 Empty Nester 0 4.05 0.446
## # ... with 8 more variables: D3bmm4 <dbl>, D3bpo4 <dbl>, D5ar <dbl>,
## # Fwylnmicap <dbl>, LogIncome <dbl>, D3apo <dbl>, D4c <dbl>,
## # WRKCOUNT <dbl>
## $metro
##
## Call:
## pscl::hurdle(formula = ntrips.Bike ~ AADVMT + Age0to14 + Age65Plus +
## D1C + D3bpo4 + WRKCOUNT + LogIncome | log1p(AADVMT) + HHSIZE +
## LIF_CYC + Age0to14 + Age65Plus + D2A_EPHHM + D3bpo4 + WRKCOUNT +
## Fwylnmicap + Tranmilescap + LogIncome, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.7027 -0.1645 -0.1205 -0.0981 39.8895
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.119569 0.320612 -0.37 0.7092
## AADVMT -0.001340 0.000482 -2.78 0.0054 **
## Age0to14 0.151201 0.019000 7.96 0.0000000000000018 ***
## Age65Plus 0.093488 0.035817 2.61 0.0090 **
## D1C 0.003128 0.001747 1.79 0.0734 .
## D3bpo4 0.002008 0.000723 2.78 0.0054 **
## WRKCOUNT 0.046955 0.024350 1.93 0.0538 .
## LogIncome 0.069766 0.029169 2.39 0.0168 *
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -4.967972 0.488708 -10.17
## log1p(AADVMT) -0.074752 0.038759 -1.93
## HHSIZE 0.085512 0.031548 2.71
## LIF_CYCCouple w/o children -0.539160 0.092424 -5.83
## LIF_CYCEmpty Nester -0.446249 0.116576 -3.83
## LIF_CYCSingle -0.674839 0.154108 -4.38
## Age0to14 0.389527 0.038843 10.03
## Age65Plus -0.238551 0.063021 -3.79
## D2A_EPHHM 0.312249 0.117192 2.66
## D3bpo4 0.003756 0.000975 3.85
## WRKCOUNT 0.183997 0.038413 4.79
## Fwylnmicap -0.921581 0.128641 -7.16
## Tranmilescap -0.017346 0.002804 -6.19
## LogIncome 0.192054 0.043330 4.43
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## log1p(AADVMT) 0.05377 .
## HHSIZE 0.00672 **
## LIF_CYCCouple w/o children 0.00000000542706 ***
## LIF_CYCEmpty Nester 0.00013 ***
## LIF_CYCSingle 0.00001192270338 ***
## Age0to14 < 0.0000000000000002 ***
## Age65Plus 0.00015 ***
## D2A_EPHHM 0.00771 **
## D3bpo4 0.00012 ***
## WRKCOUNT 0.00000166819099 ***
## Fwylnmicap 0.00000000000078 ***
## Tranmilescap 0.00000000061729 ***
## LogIncome 0.00000931996713 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 30
## Log-likelihood: -8.65e+03 on 22 Df
##
## $non_metro
##
## Call:
## pscl::hurdle(formula = ntrips.Bike ~ AADVMT + VehPerDriver + HHSIZE +
## LIF_CYC + Age0to14 + Age65Plus + D1D + log1p(D5ar) + WRKCOUNT +
## LogIncome + D3apo | AADVMT + VehPerDriver + LIF_CYC + Age0to14 +
## Age65Plus + D1A + D2A_EPHHM + log1p(D5ar) + WRKCOUNT + LogIncome +
## D3apo, data = ., na.action = na.omit)
##
## Pearson residuals:
## Min 1Q Median 3Q Max
## -0.6618 -0.1440 -0.1055 -0.0872 38.3794
##
## Count model coefficients (truncated poisson with log link):
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.672218 0.306852 5.45 0.00000005 ***
## AADVMT -0.001357 0.000466 -2.91 0.00357 **
## VehPerDriver -0.067283 0.041977 -1.60 0.10897
## HHSIZE 0.051824 0.022241 2.33 0.01980 *
## LIF_CYCCouple w/o children 0.113958 0.066307 1.72 0.08568 .
## LIF_CYCEmpty Nester 0.188349 0.078146 2.41 0.01594 *
## LIF_CYCSingle -0.143650 0.123531 -1.16 0.24488
## Age0to14 0.109653 0.029327 3.74 0.00018 ***
## Age65Plus -0.145193 0.043512 -3.34 0.00085 ***
## D1D 0.012186 0.006251 1.95 0.05125 .
## log1p(D5ar) -0.027322 0.016669 -1.64 0.10120
## WRKCOUNT 0.044312 0.026727 1.66 0.09733 .
## LogIncome -0.078013 0.025873 -3.02 0.00257 **
## D3apo 0.010580 0.003622 2.92 0.00348 **
## Zero hurdle model coefficients (binomial with logit link):
## Estimate Std. Error z value
## (Intercept) -6.005946 0.474916 -12.65
## AADVMT -0.002139 0.000621 -3.44
## VehPerDriver -0.215109 0.061488 -3.50
## LIF_CYCCouple w/o children -0.777027 0.082449 -9.42
## LIF_CYCEmpty Nester -0.654247 0.103545 -6.32
## LIF_CYCSingle -0.826358 0.137521 -6.01
## Age0to14 0.400154 0.032637 12.26
## Age65Plus -0.234784 0.058669 -4.00
## D1A 0.046866 0.013412 3.49
## D2A_EPHHM 0.257772 0.117559 2.19
## log1p(D5ar) -0.063156 0.024991 -2.53
## WRKCOUNT 0.128103 0.037886 3.38
## LogIncome 0.280244 0.042149 6.65
## D3apo 0.030902 0.004949 6.24
## Pr(>|z|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00057 ***
## VehPerDriver 0.00047 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester 0.00000000026 ***
## LIF_CYCSingle 0.00000000187 ***
## Age0to14 < 0.0000000000000002 ***
## Age65Plus 0.00006284840 ***
## D1A 0.00048 ***
## D2A_EPHHM 0.02833 *
## log1p(D5ar) 0.01150 *
## WRKCOUNT 0.00072 ***
## LogIncome 0.00000000003 ***
## D3apo 0.00000000043 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Number of iterations in BFGS optimization: 26
## Log-likelihood: -9.42e+03 on 28 Df
2 validation
| metro | rmse | pseudo.r2 |
|---|---|---|
| metro | 0.512 | 0.056 |
| non_metro | 0.456 | 0.058 |
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 Age65Plus D1D
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 1 2 Empty Nester 0 0 0.564
## 2 metro NA 2 Empty Nester 0 0 NA
## # ... with 10 more variables: D5ar <dbl>, WRKCOUNT <dbl>, LogIncome <dbl>,
## # D3apo <dbl>, D1A <dbl>, D2A_EPHHM <dbl>, D1C <dbl>, D3bpo4 <dbl>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro AADVMT HHSIZE LIF_CYC Age0to14 Age65Plus D1D D5ar
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 52.6 2 Empty Nester 0 0 0.564 16449
## 2 metro 46.7 2 Empty Nester 0 0 NA NA
## # ... with 9 more variables: WRKCOUNT <dbl>, LogIncome <dbl>, D3apo <dbl>,
## # D1A <dbl>, D2A_EPHHM <dbl>, D1C <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0
## 2 metro 46.7 NA 2 Empty Nester 0 0
## # ... with 10 more variables: D1D <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # D3apo <dbl>, D1A <dbl>, D2A_EPHHM <dbl>, D1C <dbl>, D3bpo4 <dbl>,
## # Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0
## 2 metro 46.7 NA 2 Empty Nester 0 0
## # ... with 10 more variables: D1D <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # LogIncome <dbl>, D3apo <dbl>, D2A_EPHHM <dbl>, D1C <dbl>,
## # D3bpo4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 17
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 Age65Plus
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0
## 2 metro 46.7 NA 2 Empty Nester 0 0
## # ... with 10 more variables: D1D <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # LogIncome <dbl>, D3apo <dbl>, D1A <dbl>, D2A_EPHHM <dbl>,
## # D3bpo4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 12
## metro AADVMT Age0to14 Age65Plus D1C D3bpo4 WRKCOUNT LogIncome HHSIZE
## <chr> <dbl> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 metro 46.7 0 0 0.751 10.1 1 11 2
## # ... with 3 more variables: LIF_CYC <chr>, D2A_EPHHM <dbl>,
## # Fwylnmicap <dbl>
The average trip length models are linear regression models with dependent variable (TRPMILES) power-transformed: \(TRIPMILES^{0.10} = X\beta\). These models are similar in model structure to the non-zero DVMT model in GreenSTEP, but for average trip length for Transit, Bike and Walk trips.
The TFL model option is simplified from the original Trip Frequency-Length-Mode (TFLM) Model, which models individual trips for each household in the sample. One of reason for this simplification was performance: even though it has advantages in that it allows trip information to be utilized in these models, for example, trip purpose and trip length, which are important factors in mode choice decision. In estimation of TFLM model with NHTS data, it needs to use the trip dataset, which has more than 1 million observations; while in simulation, it requires to create a dataset with one observation for every trip. Even though it can work, the requirement for memory and the penalty of speed are high. We eventually settle with the simplified TFL model that caputres the essential of travel demand for non-driving modes.
## $metro
##
## Call:
## lm(formula = I((td.miles.Transit)^0.24) ~ log1p(AADVMT) + log1p(VehPerDriver) +
## HHSIZE + LIF_CYC + Age0to14 + D1D + D2A_EPHHM + D3bmm4 +
## D3bpo4 + log1p(D5ar) + WRKCOUNT + Fwylnmicap + Tranmilescap +
## Tranmilescap:D4c + LogIncome + D3apo + D4c, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.456 -0.190 -0.068 -0.002 3.985
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.53622870 0.05792141 9.26
## log1p(AADVMT) -0.02682028 0.00331282 -8.10
## log1p(VehPerDriver) -0.18850644 0.01381771 -13.64
## HHSIZE 0.02752024 0.00347508 7.92
## LIF_CYCCouple w/o children -0.07586532 0.00869540 -8.72
## LIF_CYCEmpty Nester -0.09931469 0.00902969 -11.00
## LIF_CYCSingle -0.07148962 0.01250089 -5.72
## Age0to14 0.09251030 0.00501455 18.45
## D1D 0.00092747 0.00011778 7.87
## D2A_EPHHM -0.02028474 0.01103031 -1.84
## D3bmm4 0.00049524 0.00023553 2.10
## D3bpo4 0.00043910 0.00012792 3.43
## log1p(D5ar) -0.01676184 0.00369620 -4.53
## WRKCOUNT 0.03857460 0.00375618 10.27
## Fwylnmicap 0.03834148 0.01503590 2.55
## Tranmilescap 0.00506924 0.00025020 20.26
## LogIncome -0.01219972 0.00356743 -3.42
## D3apo -0.00279026 0.00056305 -4.96
## D4c -0.00036410 0.00008269 -4.40
## Tranmilescap:D4c 0.00002529 0.00000338 7.48
## Pr(>|t|)
## (Intercept) < 0.0000000000000002 ***
## log1p(AADVMT) 0.00000000000000058 ***
## log1p(VehPerDriver) < 0.0000000000000002 ***
## HHSIZE 0.00000000000000245 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle 0.00000001080917244 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.00000000000000350 ***
## D2A_EPHHM 0.06592 .
## D3bmm4 0.03550 *
## D3bpo4 0.00060 ***
## log1p(D5ar) 0.00000578093840237 ***
## WRKCOUNT < 0.0000000000000002 ***
## Fwylnmicap 0.01078 *
## Tranmilescap < 0.0000000000000002 ***
## LogIncome 0.00063 ***
## D3apo 0.00000072400549197 ***
## D4c 0.00001070326892416 ***
## Tranmilescap:D4c 0.00000000000007389 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.465 on 38656 degrees of freedom
## (26021 observations deleted due to missingness)
## Multiple R-squared: 0.101, Adjusted R-squared: 0.101
## F-statistic: 229 on 19 and 38656 DF, p-value: <0.0000000000000002
##
##
## $non_metro
##
## Call:
## lm(formula = I((td.miles.Transit)^0.24) ~ log1p(AADVMT) + log1p(VehPerDriver) +
## HHSIZE + LIF_CYC + Age0to14 + D1D + D2A_EPHHM + log1p(D5ar) +
## WRKCOUNT + LogIncome + D3apo, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.367 -0.055 -0.025 -0.005 4.031
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.303181 0.027711 10.94
## log1p(AADVMT) -0.005126 0.002329 -2.20
## log1p(VehPerDriver) -0.014083 0.008271 -1.70
## HHSIZE 0.009679 0.002582 3.75
## LIF_CYCCouple w/o children -0.163624 0.006130 -26.69
## LIF_CYCEmpty Nester -0.158698 0.006430 -24.68
## LIF_CYCSingle -0.152010 0.009050 -16.80
## Age0to14 0.158289 0.003660 43.25
## D1D 0.001286 0.000575 2.24
## D2A_EPHHM -0.018255 0.007423 -2.46
## log1p(D5ar) -0.002661 0.001526 -1.74
## WRKCOUNT 0.012101 0.002575 4.70
## LogIncome -0.006777 0.002356 -2.88
## D3apo -0.003149 0.000342 -9.21
## Pr(>|t|)
## (Intercept) < 0.0000000000000002 ***
## log1p(AADVMT) 0.02774 *
## log1p(VehPerDriver) 0.08864 .
## HHSIZE 0.00018 ***
## LIF_CYCCouple w/o children < 0.0000000000000002 ***
## LIF_CYCEmpty Nester < 0.0000000000000002 ***
## LIF_CYCSingle < 0.0000000000000002 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.02517 *
## D2A_EPHHM 0.01393 *
## log1p(D5ar) 0.08130 .
## WRKCOUNT 0.0000026 ***
## LogIncome 0.00402 **
## D3apo < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.416 on 67741 degrees of freedom
## (17693 observations deleted due to missingness)
## Multiple R-squared: 0.132, Adjusted R-squared: 0.132
## F-statistic: 792 on 13 and 67741 DF, p-value: <0.0000000000000002
| metro | rmse | r2 |
|---|---|---|
| metro | 3.77 | 0.101 |
| non_metro | 3.43 | 0.132 |
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 1 2 Empty Nester 0 0.564 0.486
## 2 metro 1 2 Empty Nester 0 4.052 0.446
## # ... with 9 more variables: D5ar <dbl>, WRKCOUNT <dbl>, LogIncome <dbl>,
## # D3apo <dbl>, D3bmm4 <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM D5ar
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 52.6 2 Empty Nester 0 0.564 0.486 16449
## 2 metro 46.7 2 Empty Nester 0 4.052 0.446 117369
## # ... with 8 more variables: WRKCOUNT <dbl>, LogIncome <dbl>, D3apo <dbl>,
## # D3bmm4 <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 1 2 Empty Nester 0 4.052
## # ... with 9 more variables: D2A_EPHHM <dbl>, D5ar <dbl>, WRKCOUNT <dbl>,
## # D3apo <dbl>, D3bmm4 <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.486
## 2 metro 46.7 1 2 Empty Nester 0 0.446
## # ... with 9 more variables: D5ar <dbl>, WRKCOUNT <dbl>, LogIncome <dbl>,
## # D3apo <dbl>, D3bmm4 <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <int> <dbl> <dbl>
## 1 metro 46.7 1 2 Empty Nester 0 4.05 0.446
## # ... with 8 more variables: D3bmm4 <dbl>, D3bpo4 <dbl>, D5ar <dbl>,
## # WRKCOUNT <dbl>, Fwylnmicap <dbl>, D4c <dbl>, LogIncome <dbl>,
## # D3apo <dbl>
## $metro
##
## Call:
## lm(formula = I((td.miles.Walk)^0.1) ~ AADVMT + VehPerDriver +
## HHSIZE + LIF_CYC + Age0to14 + D1D + D2A_EPHHM + D3bmm4 +
## D3bpo4 + log1p(D5ar) + WRKCOUNT + Fwylnmicap + Tranmilescap +
## LogIncome + D3apo + D4c, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.134 -0.309 -0.223 0.539 1.113
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -0.3440801 0.0565941 -6.08
## AADVMT -0.0002345 0.0000609 -3.85
## VehPerDriver -0.0295404 0.0053859 -5.48
## HHSIZE 0.0266401 0.0034055 7.82
## LIF_CYCCouple w/o children -0.0290324 0.0085261 -3.41
## LIF_CYCEmpty Nester -0.0321216 0.0088536 -3.63
## LIF_CYCSingle -0.0475518 0.0122591 -3.88
## Age0to14 0.0269732 0.0049207 5.48
## D1D 0.0009676 0.0001127 8.58
## D2A_EPHHM 0.0223077 0.0108076 2.06
## D3bmm4 0.0016370 0.0002308 7.09
## D3bpo4 0.0005724 0.0001255 4.56
## log1p(D5ar) 0.0135582 0.0036242 3.74
## WRKCOUNT 0.0270755 0.0036918 7.33
## Fwylnmicap -0.0575684 0.0147220 -3.91
## Tranmilescap 0.0019635 0.0002280 8.61
## LogIncome 0.0340531 0.0034299 9.93
## D3apo 0.0017514 0.0005523 3.17
## D4c 0.0001349 0.0000380 3.55
## Pr(>|t|)
## (Intercept) 0.0000000012146635 ***
## AADVMT 0.00012 ***
## VehPerDriver 0.0000000416639020 ***
## HHSIZE 0.0000000000000053 ***
## LIF_CYCCouple w/o children 0.00066 ***
## LIF_CYCEmpty Nester 0.00029 ***
## LIF_CYCSingle 0.00011 ***
## Age0to14 0.0000000424088795 ***
## D1D < 0.0000000000000002 ***
## D2A_EPHHM 0.03902 *
## D3bmm4 0.0000000000013351 ***
## D3bpo4 0.0000050630408465 ***
## log1p(D5ar) 0.00018 ***
## WRKCOUNT 0.0000000000002278 ***
## Fwylnmicap 0.0000923182626037 ***
## Tranmilescap < 0.0000000000000002 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.00152 **
## D4c 0.00039 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.456 on 38657 degrees of freedom
## (26021 observations deleted due to missingness)
## Multiple R-squared: 0.0506, Adjusted R-squared: 0.0501
## F-statistic: 114 on 18 and 38657 DF, p-value: <0.0000000000000002
##
##
## $non_metro
##
## Call:
## lm(formula = I((td.miles.Walk)^0.1) ~ AADVMT + VehPerDriver +
## HHSIZE + LIF_CYC + Age0to14 + D1D + D2A_EPHHM + WRKCOUNT +
## LogIncome + D3apo, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.705 -0.237 -0.186 -0.108 1.202
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -0.251427 0.025586 -9.83
## AADVMT -0.000114 0.000037 -3.08
## VehPerDriver -0.028160 0.003028 -9.30
## HHSIZE 0.018487 0.002553 7.24
## LIF_CYCCouple w/o children -0.022502 0.006097 -3.69
## LIF_CYCEmpty Nester -0.016752 0.006401 -2.62
## LIF_CYCSingle -0.024154 0.009012 -2.68
## Age0to14 0.023764 0.003641 6.53
## D1D 0.004856 0.000568 8.55
## D2A_EPHHM 0.014835 0.007390 2.01
## WRKCOUNT 0.013850 0.002568 5.39
## LogIncome 0.039888 0.002262 17.64
## D3apo 0.002361 0.000331 7.13
## Pr(>|t|)
## (Intercept) < 0.0000000000000002 ***
## AADVMT 0.00205 **
## VehPerDriver < 0.0000000000000002 ***
## HHSIZE 0.00000000000045 ***
## LIF_CYCCouple w/o children 0.00022 ***
## LIF_CYCEmpty Nester 0.00887 **
## LIF_CYCSingle 0.00736 **
## Age0to14 0.00000000006805 ***
## D1D < 0.0000000000000002 ***
## D2A_EPHHM 0.04470 *
## WRKCOUNT 0.00000006908232 ***
## LogIncome < 0.0000000000000002 ***
## D3apo 0.00000000000104 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.414 on 67742 degrees of freedom
## (17693 observations deleted due to missingness)
## Multiple R-squared: 0.0274, Adjusted R-squared: 0.0272
## F-statistic: 159 on 12 and 67742 DF, p-value: <0.0000000000000002
2 validation
| metro | rmse | r2 |
|---|---|---|
| metro | 4.443 | 0.051 |
| non_metro | 0.434 | 0.027 |
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM WRKCOUNT
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 non_metro 52.6 2 Empty Nester 0 0.564 0.486 1
## 2 metro 46.7 2 Empty Nester 0 4.052 0.446 1
## # ... with 8 more variables: LogIncome <dbl>, D3apo <dbl>, D3bmm4 <dbl>,
## # D3bpo4 <dbl>, D5ar <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>,
## # D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 1 2 Empty Nester 0 4.052
## # ... with 9 more variables: D2A_EPHHM <dbl>, WRKCOUNT <dbl>, D3apo <dbl>,
## # D3bmm4 <dbl>, D3bpo4 <dbl>, D5ar <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.486
## 2 metro 46.7 1 2 Empty Nester 0 0.446
## # ... with 9 more variables: WRKCOUNT <dbl>, LogIncome <dbl>, D3apo <dbl>,
## # D3bmm4 <dbl>, D3bpo4 <dbl>, D5ar <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>, D4c <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 16
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D D2A_EPHHM
## <chr> <dbl> <dbl> <dbl> <chr> <int> <dbl> <dbl>
## 1 metro 46.7 1 2 Empty Nester 0 4.05 0.446
## # ... with 8 more variables: D3bmm4 <dbl>, D3bpo4 <dbl>, D5ar <dbl>,
## # WRKCOUNT <dbl>, Fwylnmicap <dbl>, LogIncome <dbl>, D3apo <dbl>,
## # D4c <dbl>
## $metro
##
## Call:
## lm(formula = I((td.miles.Bike)^0.1) ~ log1p(AADVMT) + LIF_CYC +
## Age0to14 + UZAEMPDEN + D2A_EPHHM + D3bpo4 + WRKCOUNT + Fwylnmicap +
## Tranmilescap + LogIncome, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.2167 -0.0402 -0.0242 -0.0141 1.5127
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -0.0097280 0.0137635 -0.71
## log1p(AADVMT) -0.0016574 0.0011256 -1.47
## LIF_CYCCouple w/o children -0.0170418 0.0026287 -6.48
## LIF_CYCEmpty Nester -0.0138046 0.0028516 -4.84
## LIF_CYCSingle -0.0181564 0.0035192 -5.16
## Age0to14 0.0282444 0.0016296 17.33
## UZAEMPDEN 0.0023672 0.0012912 1.83
## D2A_EPHHM 0.0107556 0.0036625 2.94
## D3bpo4 0.0001187 0.0000348 3.41
## WRKCOUNT 0.0087663 0.0012941 6.77
## Fwylnmicap -0.0211009 0.0039957 -5.28
## Tranmilescap -0.0006114 0.0001046 -5.85
## LogIncome 0.0050235 0.0012452 4.03
## Pr(>|t|)
## (Intercept) 0.47970
## log1p(AADVMT) 0.14089
## LIF_CYCCouple w/o children 0.000000000091 ***
## LIF_CYCEmpty Nester 0.000001296054 ***
## LIF_CYCSingle 0.000000248960 ***
## Age0to14 < 0.0000000000000002 ***
## UZAEMPDEN 0.06677 .
## D2A_EPHHM 0.00332 **
## D3bpo4 0.00065 ***
## WRKCOUNT 0.000000000013 ***
## Fwylnmicap 0.000000129120 ***
## Tranmilescap 0.000000005023 ***
## LogIncome 0.000054814665 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.189 on 50534 degrees of freedom
## (14150 observations deleted due to missingness)
## Multiple R-squared: 0.0203, Adjusted R-squared: 0.02
## F-statistic: 87 on 12 and 50534 DF, p-value: <0.0000000000000002
##
##
## $non_metro
##
## Call:
## lm(formula = I((td.miles.Bike)^0.1) ~ AADVMT + VehPerDriver +
## HHSIZE + LIF_CYC + Age0to14 + D1D + WRKCOUNT + LogIncome +
## D3apo, data = ., na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.1784 -0.0321 -0.0184 -0.0105 1.5062
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) -0.0415543 0.0101576 -4.09
## AADVMT -0.0000614 0.0000148 -4.14
## VehPerDriver -0.0030401 0.0012160 -2.50
## HHSIZE 0.0017851 0.0010251 1.74
## LIF_CYCCouple w/o children -0.0146972 0.0024483 -6.00
## LIF_CYCEmpty Nester -0.0129763 0.0025705 -5.05
## LIF_CYCSingle -0.0124367 0.0036190 -3.44
## Age0to14 0.0202719 0.0014622 13.86
## D1D 0.0004938 0.0002237 2.21
## WRKCOUNT 0.0044704 0.0010310 4.34
## LogIncome 0.0059860 0.0009083 6.59
## D3apo 0.0008591 0.0001325 6.48
## Pr(>|t|)
## (Intercept) 0.000043011926 ***
## AADVMT 0.000035315486 ***
## VehPerDriver 0.01242 *
## HHSIZE 0.08164 .
## LIF_CYCCouple w/o children 0.000000001945 ***
## LIF_CYCEmpty Nester 0.000000447252 ***
## LIF_CYCSingle 0.00059 ***
## Age0to14 < 0.0000000000000002 ***
## D1D 0.02726 *
## WRKCOUNT 0.000014523461 ***
## LogIncome 0.000000000044 ***
## D3apo 0.000000000092 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.166 on 67743 degrees of freedom
## (17693 observations deleted due to missingness)
## Multiple R-squared: 0.0166, Adjusted R-squared: 0.0164
## F-statistic: 104 on 11 and 67743 DF, p-value: <0.0000000000000002
2 validation
| metro | rmse | r2 |
|---|---|---|
| metro | 0.765 | 0.020 |
| non_metro | 0.591 | 0.017 |
## [1] "Typical values:\n"
## # A tibble: 2 × 14
## metro VehPerDriver HHSIZE LIF_CYC Age0to14 D1D WRKCOUNT
## <chr> <dbl> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 non_metro 1 2 Empty Nester 0 0.564 1
## 2 metro NA NA Empty Nester 0 NA 1
## # ... with 7 more variables: LogIncome <dbl>, D3apo <dbl>,
## # UZAEMPDEN <dbl>, D2A_EPHHM <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 14
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 NA NA Empty Nester 0 NA
## # ... with 7 more variables: WRKCOUNT <dbl>, D3apo <dbl>, UZAEMPDEN <dbl>,
## # D2A_EPHHM <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 14
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 WRKCOUNT
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 1
## 2 metro 46.7 NA NA Empty Nester 0 1
## # ... with 7 more variables: LogIncome <dbl>, D3apo <dbl>,
## # UZAEMPDEN <dbl>, D2A_EPHHM <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>,
## # Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 2 × 14
## metro AADVMT VehPerDriver HHSIZE LIF_CYC Age0to14 D1D
## <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 non_metro 52.6 1 2 Empty Nester 0 0.564
## 2 metro 46.7 NA NA Empty Nester 0 NA
## # ... with 7 more variables: WRKCOUNT <dbl>, LogIncome <dbl>, D3apo <dbl>,
## # D2A_EPHHM <dbl>, D3bpo4 <dbl>, Fwylnmicap <dbl>, Tranmilescap <dbl>
## [1] "Typical values:\n"
## # A tibble: 1 × 10
## metro AADVMT LIF_CYC Age0to14 UZAEMPDEN D2A_EPHHM D3bpo4 WRKCOUNT
## <chr> <dbl> <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 metro 46.7 Empty Nester 0 1.78 0.446 10.1 1
## # ... with 2 more variables: Fwylnmicap <dbl>, LogIncome <dbl>
The PMT model is made up two sequential models: a total person miles traveled (PMT) and a mode allocation model(Figure 1).
Figure 1. Flow Chart of Person Miles Traveled by Mode (PMT) Model
The total person miles traveled is a household level model of total person miles traveled by all household members. It is a linear regression model with pmt (log transformed) as the dependent variable:\(\ln(pmt) = X\beta\)
The model can be segmented by life stage of a household (e.g. single, young couple, full nesters, empty nesters) and place types, etc for better model fit and predicting power.
The mode allocation model captures the percentage of PMT by modes for households and allocates total PMT to each mode in prediction. In estimation, we first choose a base mode, compute the ratio of PMT percentage for all other modes relative to that for the base mode, and then use log of the ratio (i.e., log-odds ratio) as the dependent variable of the mode allocation model. We will estimate \(n - 1\) models if there are \(n\) modes in total. In prediction, we first predict the log-odds ratios from each of the \(n-1\) models, exponentiate the predicted log-odds ratios to get odds ratios, and apply the additional condition that the odds for all modes sum up to 1 to get the predicted PMT percentage for each mode. The model structure is consistent with a multinomial logit model that is commonly used in mode choice modeling.
\(\ln(\frac{P_{Transit}}{P_{Auto}}) = X\beta\), and \(\ln(\frac{P_{Bike/Walk}}{P_{Auto}}) = X\beta\).
The advantage of the PMT model is that the model structure is similar to the existing household travel model in GreenSTEP, and consistent with mode choice models in travel demand modeling. The disadvantages includes:
After reporting to the TAC in October 2016, we converged to suspend the work on PMT models and focus on TFL models (below).
Statistical significance, theoretical foundation, and predicting power: because of the large sample size (n>15,000) of 2009 NHTS, it is easy to get a large number of significant coefficients, but they do not necessarily make for a good predictive model. On the other hand, models solely focusing on predictive power (for example, those based on machine learning algorithms) may lack of theoretical basis thus may break down when predict outcomes for conditions far from the base year range. One thing that is particularly hard to do for predictive model is for them to capture behavior that has not been observed in data, for example, potential non-linearity of price elasticities when price rise.
Circella, Giovanni, Susan Handy, and Marlon G. Boarnet, 2014. Impacts of Gas Price on Passenger Vehicle Use and Greenhouse Gas Emissions, California Air Resources Board, Technical Background Document.
Dong, Jing, Diane Davidson, Frank Southworth and Tim Reuscher, 2012. Analysis of Automobile Travel Demand Elasticities With Respect To Travel Cost, Federal Highway Administration
Graham, D.J., Glaister, S., 2002. The Demand for Automobile Fuel: A Survey of Elasticities. Journal of Transport Economics and Policy (JTEP) 36, 1–25.
Gregor, Brian, Modeling the Effects of Vehicle Travel Costs on Household Vehicle Travel. GreenSTEP Technical Document.
Ramsey, Kevin and Alexander Bell, 2014. Smart Location Database Version 2.0 User Guide. U.S. EPA. URL: https://www.epa.gov/smartgrowth/smart-location-mapping#SLD, accessed on 03/01/2015.
U.S. Department of Transportation, Federal Highway Administration, 2009 National Household Travel Survey. URL: http://nhts.ornl.gov, accessed on 02/09/2016.
sessionInfo()
## R version 3.3.2 (2016-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.1 LTS
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] splines stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] modelr_0.1.0 pander_0.6.0 stargazer_5.2 magrittr_1.5
## [5] scales_0.4.1 dplyr_0.5.0 purrr_0.2.2 readr_1.0.0
## [9] tidyr_0.6.1 tibble_1.2 ggplot2_2.2.1 tidyverse_1.1.1
## [13] pastecs_1.3-18 boot_1.3-18 moments_0.14 knitr_1.15.1
## [17] gridExtra_2.2.1 printr_0.0.6 pacman_0.4.1
##
## loaded via a namespace (and not attached):
## [1] gtools_3.5.0 reshape2_1.4.2 haven_1.0.0
## [4] lattice_0.20-34 colorspace_1.3-2 htmltools_0.3.5
## [7] yaml_2.1.14 foreign_0.8-67 DBI_0.5-1
## [10] readxl_0.1.1 plyr_1.8.4 stringr_1.2.0
## [13] munsell_0.4.3 gtable_0.2.0 rvest_0.3.2
## [16] caTools_1.17.1 psych_1.6.12 evaluate_0.10
## [19] labeling_0.3 forcats_0.2.0 pscl_1.4.9
## [22] parallel_3.3.2 highr_0.6 broom_0.4.2
## [25] Rcpp_0.12.9 KernSmooth_2.23-15 ROCR_1.0-7
## [28] backports_1.0.5 gdata_2.17.0 jsonlite_1.3
## [31] gplots_3.0.1 mnormt_1.5-5 hms_0.3
## [34] digest_0.6.12 stringi_1.1.2 grid_3.3.2
## [37] rprojroot_1.2 bitops_1.0-6 tools_3.3.2
## [40] lazyeval_0.2.0 MASS_7.3-45 xml2_1.1.1
## [43] lubridate_1.6.0 assertthat_0.1 rmarkdown_1.3
## [46] httr_1.2.1 R6_2.2.0 nlme_3.1-131